gpt4 book ai didi

Python:追加列表实际上并没有追加它?

转载 作者:太空宇宙 更新时间:2023-11-03 16:47:56 24 4
gpt4 key购买 nike

我有一个 CSV 文件,其中包含姓名和分数。我已将每一行设为一个单独的列表,但是当将变量 append 到此列表时,它实际上并没有执行此操作。我的代码是:

import csv
f = open('1scores.csv')
csv_f = csv.reader(f)
newlist = []
for row in csv_f:
newlist.append(row[0:4])

minimum = min(row[1:4])
newlist.append(minimum)
print(newlist)

文件中的数据为

Person One,4,7,4
Person Two,1,4,2
Person Three,3,4,1
Person Four,2

输出肯定是 ['Person One', '4', '7', '4', '4'] 因为最小值是 4,我将其 append 到列表。但我得到了这个:['Person One', '4', '7', '4'], '4',我究竟做错了什么?我希望最小值位于列表内部,而不是外部,但不明白。

最佳答案

将最小值 append 到每行,然后 append 行本身,您首先 append 切片的列表,然后将最小值添加到 newlist 而不是切片列表:

for row in csv_f:
row.append(min(row[1:],key=int)
newlist.append(row)

您还可以使用列表组合:

new_list =  [row + [min(row[1:], key=int)] for row in csv_f]

您还需要,key=int,否则您可能会发现得到奇怪的结果,因为您的分数/字符串将按字典顺序进行比较:

In [1]: l = ["100" , "2"] 

In [2]: min(l)
Out[2]: '100'

In [3]: min(l,key=int)
Out[3]: '2'

关于Python:追加列表实际上并没有追加它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36142900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com