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

Python:如何在列表列表中添加新元素?

阎卓
2023-03-14
问题内容

这是一个非常简单的程序:

 a = [[]]*3

 print str(a)

 a[0].append(1)
 a[1].append(2)
 a[2].append(3)

 print str(a[0])
 print str(a[1])
 print str(a[2])

这是我期望的输出:

 [[], [], []]
 [1]
 [2]
 [3]

但是我得到了这个:

 [[], [], []]
 [1, 2, 3]
 [1, 2, 3]
 [1, 2, 3]

真的有我不来的东西!


问题答案:

你必须做

a = [[] for i in xrange(3)]

a = [[]]*3

现在可以正常工作:

$ cat /tmp/3.py
a = [[] for i in xrange(3)]

print str(a)

a[0].append(1)
a[1].append(2)
a[2].append(3)

print str(a[0])
print str(a[1])
print str(a[2])

$ python /tmp/3.py
[[], [], []]
[1]
[2]
[3]

当您执行类似操作时,a = [[]]*3您会在一个列表中[]三次获得相同的列表。 相同的
意思是,当您更改其中之一时,您也会更改所有它们(因为只有一个列表被引用了3次)。

您需要创建三个独立的列表来解决此问题。您可以通过列表理解来做到这一点。您在此处构造一个由独立的空列表组成的列表[]。将为每次迭代创建一个新的空列表xrange(3)(在这种情况下,range和之间的区别xrange并不那么重要;但是xrange要好一些,因为它不会产生完整的数字列表,而只是返回一个迭代器对象)。



 类似资料:
  • 问题内容: 我正在尝试使用PHP将新列添加到我的MYSQL表中。我不确定如何更改表以创建新列。在我的评估表中,我有: 假设我有一个带有文本框的页面,然后输入文本框并按一个按钮,则表将更新为: 我的代码: 问题答案: 您的桌子: 你也可以

  • 主要内容:Python append()方法添加元素,Python extend()方法添加元素,Python insert()方法插入元素实际开发中,经常需要对 Python 列表进行更新,包括向列表中添加元素、修改表中元素以及删除元素。本节先来学习如何向列表中添加元素。 《 Python序列》一节告诉我们,使用 运算符可以将多个序列连接起来;列表是序列的一种,所以也可以使用 进行连接,这样就相当于在第一个列表的末尾添加了另一个列表。 请看下面的演示: 运行结果: language = ['P

  • 我有一个熊猫数据框,其中一列由列表组成: 我想添加,例如,每个列表的第一个和最后一个索引。为此,我使用: 这分别作用于每一行,如果数据帧很大,这可能会非常密集。有没有办法将此操作矢量化?

  • 我正在尝试在现有列表中添加一个新项目,但无法添加。当我调试时,它显示返回为true,但最终新项没有添加到列表中。 我的示例代码如下:雇员雇员1=新雇员(5001,BOB,financeDept.getDepartment_name());雇员雇员2=新雇员(5002,SAM,financeDept.getDepartment_name());雇员雇员3=新雇员(5003,SAM,hrDept.ge

  • 问题内容: 在python中将列表列表加入单个列表(或迭代器)的语法是否简短? 例如,我有一个如下列表,我想遍历a,b和c。 我能想到的最好的方法如下。 问题答案:

  • 问题内容: 我现在有了: 我希望有: 只是两个列表的元素加法。 我当然可以迭代两个列表,但是我不想这样做。 什么是最Python的方式这样做的? 问题答案: 使用map有: 或zip具有列表理解: 时序比较: