简单语法题(元组转换)
Simple Syntax Question (tuple conversion)
我目前正在研究为不同目的组合、组织和操作数据的不同方法。
就在今天,我发现了这种 zip() / iter() 技术,它可以创建包含 TUPLES 的 LIST,同时还能够指定每个 TUPLE 中有多少个元素。但是,我无法完全理解部分语法。
代码如下:
mylist = [1,2,3,4,5,6]
converted = [x for x in zip(*[iter(mylist)]*2)]
print(converted)
这是输出(这是我想要的):
[(1, 2), (3, 4), (5, 6)]
我想抓住的是第一个星号。我知道这很可能与告诉 'iter' 或 'zip' 函数每个元组应包含多少个元素的 '*2' 有关,但是,我试图掌握它放置的必要性。
非常感谢任何帮助。
此外,如果您知道另一种实现此目的的技术并愿意分享,我将非常感谢向您学习。
再次感谢大家!
基本上 iter(mylist)
为列表创建一个迭代器对象,然后将其放入列表 [iter(mylist)]
中,乘以 2 基本上形成一个包含对同一迭代器对象的两个引用的列表:[iter(mylist)]*2
-> [<list_iterator object at 0x7f8fbc1ac610>, <list_iterator object at 0x7f8fbc1ac610>]
第一个星号将列表作为参数解压到 zip() 函数中。
由于我不太擅长解释事情,所以为了更容易理解,这段代码和你的一样:
mylist = [1,2,3,4,5,6]
iterators = [iter(mylist)] * 2
converted = [x for x in zip(*iterators)]
print(converted)
所以它创建了一个迭代器,然后通过将它乘以 2 来创建一个包含对同一迭代器对象的两个引用的列表。
然后它解压缩列表以用作 zip()
函数
的参数
我不太擅长解释,希望这至少能让你明白一点。
我目前正在研究为不同目的组合、组织和操作数据的不同方法。
就在今天,我发现了这种 zip() / iter() 技术,它可以创建包含 TUPLES 的 LIST,同时还能够指定每个 TUPLE 中有多少个元素。但是,我无法完全理解部分语法。
代码如下:
mylist = [1,2,3,4,5,6]
converted = [x for x in zip(*[iter(mylist)]*2)]
print(converted)
这是输出(这是我想要的):
[(1, 2), (3, 4), (5, 6)]
我想抓住的是第一个星号。我知道这很可能与告诉 'iter' 或 'zip' 函数每个元组应包含多少个元素的 '*2' 有关,但是,我试图掌握它放置的必要性。
非常感谢任何帮助。
此外,如果您知道另一种实现此目的的技术并愿意分享,我将非常感谢向您学习。
再次感谢大家!
基本上 iter(mylist)
为列表创建一个迭代器对象,然后将其放入列表 [iter(mylist)]
中,乘以 2 基本上形成一个包含对同一迭代器对象的两个引用的列表:[iter(mylist)]*2
-> [<list_iterator object at 0x7f8fbc1ac610>, <list_iterator object at 0x7f8fbc1ac610>]
第一个星号将列表作为参数解压到 zip() 函数中。 由于我不太擅长解释事情,所以为了更容易理解,这段代码和你的一样:
mylist = [1,2,3,4,5,6]
iterators = [iter(mylist)] * 2
converted = [x for x in zip(*iterators)]
print(converted)
所以它创建了一个迭代器,然后通过将它乘以 2 来创建一个包含对同一迭代器对象的两个引用的列表。
然后它解压缩列表以用作 zip()
函数
我不太擅长解释,希望这至少能让你明白一点。