当前位置: 首页 > 面试题库 >

Python列表问题

郭曾笑
2023-03-14
问题内容

python:

m=[[0]*3]*2
for i in range(3):
    m[0][i]=1

print m

我希望此代码应打印

[[1, 1, 1], [0, 0, 0]]

但它打印

[[1, 1, 1], [1, 1, 1]]

问题答案:

这是设计使然。在列表的元素上使用乘法时,您正在复制引用。

请参阅Python编程/列表Wikibook上的“列表创建快捷方式”部分,其中详细介绍了对可变对象的列表引用问题。

他们建议的解决方法是列表理解:

>>> s = [[0]*3 for i in range(2)]
>>> s
[[0, 0, 0], [0, 0, 0]]
>>> s[0][1] = 1
>>> s
[[0, 1, 0], [0, 0, 0]]


 类似资料:
  • 问题内容: 我在python中有一个由列表列表建模的2D数组,我想提取该列。我进行了快速研究,发现了一种使用numpy数组的方法。问题是 我不想使用numpy, 所以不想将列表列表转换为numpy数组,然后使用[:,1]语法。我尝试在正常的列表列表上使用它,但显示错误,因此是不可能的。我正在为列表列表请求类似的东西,而不必遍历每个元素(在numpy数组中,使用[:,1]语法访问列比在数组元素上进行

  • 我有一个名为的DataFrame想要迭代列表并获得的值,但我得到了以下错误(如预期的那样)。知道我该怎么取消吗?

  • 我有一个关于python中链接列表的快速问题。在下面显示的解决方案代码中,当我尝试合并两个排序的链接列表时。我对包含的if和elif语句的条件感到困惑。例如,如果l1不为空,l2为空,我想将l1中的其余3个元素添加到我的新链接列表中,但代码显示l1和tail没有更新,所以它不是只添加3个元素中的一个吗? 我的另一个问题是关于返回head.next.返回会自动返回从head.next到null pt

  • 问题发布 功能介绍:学员可向已有专家提问问题,专家可设置付费回答。 适用场景:学员在家自学并询问老师。 步骤(手机端) 从【进入店铺】→【首页】→【导航栏】→【问答】,进入付费问答界面。 首页导航栏可自由设置,详情点此。 问题管理 功能介绍:查看付费问答详情、推荐、隐藏或者删除。 步骤(后台端) 从【在线问答】→【问题列表】,进入付费问答列表。

  • 本文向大家介绍Python修改列表值问题解决方案,包括了Python修改列表值问题解决方案的使用技巧和注意事项,需要的朋友参考一下 由于惯性思维,导致使用for循环修改列表中的值出现问题 首次尝试: 运行结果 显然列表中的值并没有改变。 思考:for语句定义一个变量进行遍历,但只是访问当前值。操作列表中的值正确方法是使用下标。 修改后: 运行结果 以上就是本文的全部内容,希望对大家的学习有所帮助,

  • 问题内容: 我有一个列表列表: 我想将其平均 我的代码好像不太优雅。这是遍历列表的幼稚方法,将总和保存在单独的容器中,然后除以元素数。 我认为有一种Python方式可以做到这一点。有什么建议?谢谢 问题答案: 纯Python: 印刷 NumPy: Python 3: