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

将项目追加到python中的列表列表中

水瀚漠
2023-03-14
问题内容

我对列表索引感到生气,无法解释我做错了什么。

我有一段代码,我想在其中创建一个列表列表,每个列表包含我从csv文件中读取的相同电路参数(电压,电流等)的值,如下所示:

Sample, V1, I1, V2, I2
0, 3, 0.01, 3, 0.02
1, 3, 0.01, 3, 0.03

等等。我想要的是创建一个列表,例如以[[V1],[I1]]的形式包含V1和I1(但我想交互选择),因此:

[[3,3], [0.01, 0.01]]

我正在使用的代码是这样的:

plot_data = [[]]*len(positions)    
for row in reader:
    for place in range(len(positions)):
        value = float(row[positions[place]])
        plot_data[place].append(value)

plot_data是包含所有值的列表,而是包含positions我要从.csv文件中复制的列的索引的列表。问题是,如果我尝试在外壳程序中执行命令,似乎可以正常工作,但是如果我运行脚本而不是将每个值附加到适当的子列表中,则会将所有值附加到所有列表中,因此得到2(或更多)
)相同的列表。


问题答案:

Python列表是可变对象,在这里:

plot_data = [[]] * len(positions)

您正在重复相同的列表len(positions)时间。

>>> plot_data = [[]] * 3
>>> plot_data
[[], [], []]
>>> plot_data[0].append(1)
>>> plot_data
[[1], [1], [1]]
>>>

列表中的每个列表都是对同一对象的引用。您修改一个,就可以看到所有修改

如果要使用其他列表,可以采用以下方式:

plot_data = [[] for _ in positions]

例如:

>>> pd = [[] for _ in range(3)]
>>> pd
[[], [], []]
>>> pd[0].append(1)
>>> pd
[[1], [], []]


 类似资料:
  • 我的目标是从用户输入的“AM”-“PM”字符串格式打印包含24小时十进制格式的进入和退出时间的列表,如以下字符串数组:{6AM#8AM,11AM#1PM,7AM#8PM,7AM#8AM,10AM#12PM,12PM#4PM,1PM#4PM,8AM#9AM} 我在for循环中声明了各个列表,并在循环中为它们赋值,但从代码中得到了以下运行时异常:java。lang.IndexOutOfBoundsEx

  • 问题内容: 我正在编写一个包含10个存储桶列表的简单哈希表。使用内置函数计算索引,然后对表大小取模。但是,当我尝试将对象附加到该索引的存储桶列表时,它会附加到每个存储桶列表。我尝试用不同的方式定义add_HT,但我一直得到相同的结果。我究竟做错了什么? 问题答案: 使指向 同一列表 的指针数量增加。这里不是问题。您需要定义为。

  • 我的清单如下: 我需要将上面列表中的数据添加到下面的列表中,其中第0行应该有值test1和test2。第1行应该有test3和test4

  • 我有一个for循环,它遍历CSV中的每一行,我创建了一个包含列表的字典,但是列表被重写了,因为字典键被重复了几次。我如何总结或追加到列表中的第二(1)位置相同的键的下一个值下一个循环迭代? 因为使用append时,如果再次找到现有键,则会覆盖该值,因此该键的值会被一次又一次地覆盖。 CSV中的字段包括: 输出应该是这样的:

  • 问题内容: 我是一名基本的python程序员,因此希望我的问题的答案会很容易。我正在尝试拿字典并将其附加到列表中。然后,字典更改值,然后再次循环添加。似乎每次执行此操作时,列表中的所有词典都会更改其值以匹配刚刚添加的值。例如: 我认为结果是,但是我得到了: 任何帮助是极大的赞赏。 问题答案: 您需要追加一个 副本 ,否则您将一遍又一遍地添加对同一词典的引用: 我用和代替和; 您不想掩盖内置类型。

  • 问题内容: 在Python Shell中,我输入: 并得到 但是当我尝试: 并得到 有人知道发生了什么吗?我该如何解决/解决它? 问题答案: 是一种修改现有列表的方法。它不返回新列表,而是返回,就像大多数修改列表的方法一样。简单地做,您的列表将添加元素。

  • < code>list_of_lists=[[1,2,3],[4,5,6]] < br > < code > list _ to _ add =[" A "," B "," C"] 我希望结果是list_of_lists会变成: 谢谢!

  • 我试图做的是从列“in_reply_to_user_id”(不在图片中,因为df太宽,无法容纳)与给定id具有相同值的行中获取文本,并将文本附加到列表中,然后将其放入新列中。例如,所有tweet中的“in_reply_to_user_id”列等于第一条tweet的“id”的文本都应该放在一个列表中,然后添加到数据框中名为“reples”的新列中。以下是我尝试过的一些事情: