在python中迭代元组中的元组后面的逻辑

时间:2017-07-20 14:52:11

标签: python list tuples

我可以看到 s1,s2,s3 都会导致相同的结果。 (给出每个元组的2'元素)

为什么会这样?

train = ((1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e') )
s1 = tuple([x for s, x in train])
s2 = tuple([x for ss, x in train])
s3 = tuple([x for sss, x in train])

4 个答案:

答案 0 :(得分:1)

如果您使用此表单:

train = ((1, 'a'), (2, 'b'), (3, 'c'), (4, 'd'), (5, 'e') )
s1 = tuple([x for s, x in train])
s2 = tuple([x for s, x in train])
s3 = tuple([x for s, x in train])

然后s1 == s2 == s3。因为s, ss, sss只是保存元组第一个值的名称。

答案 1 :(得分:0)

ssssss只是变量名称。其余的代码是相同的,因为逻辑是为您提供不同的结果而不改变变量的名称。

答案 2 :(得分:0)

对于同一件事,他们只是不同的名字。您可以将s替换为a,将x替换为b,或者您选择的任何其他变量名称,结果仍然相同。第一个变量(无论你给它的名字)将获得元组的第一个元素,而第二个变量将获得第二个值。之后,您只需将x' s,即每个元组的第二部分放入新列表中。

答案 3 :(得分:0)

s,ss,sss是您在列表推导中创建的临时变量。它们基本上以相同的方式工作并包含相同的值