Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python乘法序列技巧_Python_List_Sequence - Fatal编程技术网

Python乘法序列技巧

Python乘法序列技巧,python,list,sequence,Python,List,Sequence,诀窍是: IPython prompt: In [1]: A = [ [] ] * 2 In [2]: A Out[2]: [[], []] In [3]: A[0].append(1) In [4]: A Out[4]: [[1], [1]] 显然,这不是我期望的结果,我想要的是[[1],]。那为什么呢?我在文档中没有找到关于python乘法序列的参考文献 有什么优雅的方法(不使用任何显式循环)可以做到这一点吗?A=[[]]*2创建一个列表,其中包含对同一列表的两个引用: 相反,您需

诀窍是:

IPython prompt:

In [1]: A = [ [] ] * 2

In [2]: A
Out[2]: [[], []]

In [3]: A[0].append(1)

In [4]: A
Out[4]: [[1], [1]]
显然,这不是我期望的结果,我想要的是
[[1],]
。那为什么呢?我在文档中没有找到关于python乘法序列的参考文献


有什么优雅的方法(不使用任何显式循环)可以做到这一点吗?

A=[[]]*2
创建一个列表,其中包含对同一列表的两个引用:

相反,您需要使用:


请注意,如果您使用的是Python 3.x,则需要将
xrange
替换为
range

A=[[]]*2
创建一个包含对同一列表的两个引用的列表:

相反,您需要使用:


请注意,如果您使用的是Python3.x,则需要将
xrange
替换为
range

[[]]
是一个包含(引用)列表的数组。当你把它乘以2,你会得到一个列表,其中包含对同一个列表的两个引用。试试这个:

A = [[] for i in range(5)]
它将为
范围的每个勾号生成一个新的空列表


这不可能是一个无循环版本,因为您确实需要构造多个列表;不能有快捷方式。

[[]]
是一个包含(引用)列表的数组。当你把它乘以2,你会得到一个列表,其中包含对同一个列表的两个引用。试试这个:

A = [[] for i in range(5)]
它将为
范围的每个勾号生成一个新的空列表


这不可能是一个无循环版本,因为您确实需要构造多个列表;没有捷径。

没问题。我很高兴您更新了答案。:)更正是好的,但我们真的不需要看到被划掉的旧版本-这会分散注意力。他收回了评论,因为你解决了问题。如果你愿意,我也会这么做。如果你自己的评论现在看起来不合适,你可以自己删除。没问题。我很高兴您更新了答案。:)更正是好的,但我们真的不需要看到被划掉的旧版本-这会分散注意力。他收回了评论,因为你解决了问题。如果你愿意,我也会这么做。如果你自己的评论现在看起来不合适,你可以自己删除。
A = [[] for i in range(5)]