假设您有以下元组元组:
test = ((1, '2'), (3, '4'), ('5', '6'))
如果我想提取每个元组的第二个元素,我会这样做:
secondonly = tuple([x[-1] for x in test])
我也看到了:
secondonly = tuple([x for word, x in test])
< ---- ** < ---这是怎么回事?
有人可以解释一下 ** 这一行是如何给出好结果的吗?感谢
答案 0 :(得分:3)
test 包含3个长度为2的元组。for word, x in test
(相当于for (word, x) in test
)将每个元组的第一个元素解包为 word 第二个是 x 。因此[x for (word, x) in test]
将每隔一个元素( x )创建一个列表。
答案 1 :(得分:1)
它与您在第一个示例中所做的类似 - “x for x in blah”构建了for循环中累积的所有x的列表。在这个例子中,for循环包括将“test”的每个元素赋值为“word,x”,它自动将元组解包为这两个变量,因此意味着“word”和“x”取第一个和第二个元素每个元组分别。这意味着“x”总是引用元组的第二个元素,因此循环根据需要构建第二个元素的列表。