Python 使用

Python 使用,python,Python,我以为打印的结果是一样的,但事实并非如此。 这两个句子有什么不同 list = ([1,2,3], [2,3,4], [5,6,7]) print([x[0] - sum(x) for x in zip(*list[1:])]) print([x[0]*2 - sum(x) for x in zip(*list)]) 如果执行以下命令,您将看到它们的输出之间的差异 list = ([1,2,3], [2,3,4], [5,6,7]) # You should avoid using keyw

我以为打印的结果是一样的,但事实并非如此。 这两个句子有什么不同

list = ([1,2,3], [2,3,4], [5,6,7])
print([x[0] - sum(x) for x in zip(*list[1:])])
print([x[0]*2 - sum(x) for x in zip(*list)])
如果执行以下命令,您将看到它们的输出之间的差异

list = ([1,2,3], [2,3,4], [5,6,7])  # You should avoid using keywords as variable names.
print([x[0] - sum(x) for x in zip(*list[1:])])  # iterating from the index 1
print([x[0]*2 - sum(x) for x in zip(*list)])   # iterating from index 0

因此,第1个命令将遍历包含2个元素的列表。然而,第二个命令迭代包含3个元素的列表。

不同之处在于,在第一句中,您只获取原始列表的第2和第3个元素,而在第二句中,您获取整个列表加上乘以2

“列表”重命名为“ll”


ll[1:]返回[2,3,4],[5,6,7]

不要调用列表,因为它会隐藏内置类型。为什么您认为对两个不同数据子集的两个不同操作会产生相同的结果?zip*列表中的x的sumx[1::=>[7,9,11]zip*列表中的x的sumx=>[8,11,14]x[0]=[1,2,5],这是错误的吗?No x[0]=[2,3,4]在第一个中,x[0]=[1,2,3]在第二个中。
>>> [*zip(*list[1:])]
[(2, 5), (3, 6), (4, 7)]
>>> [*zip(*list)]
[(1, 2, 5), (2, 3, 6), (3, 4, 7)]