import csv
with open("DADSA RESIT CWK JULY 2018.csv", newline='') as f:
r = csv.reader(f)
database = list(r)
del database[0]
names = []
names.append([])
def fillnames(d, n):
for j in n:
for i in d:
if d[i][0] == n[j][0] and d[i][1] == n[j][1]:
n[i][2] = n[i][2]+1
else:
names.append([d[i][0], d[i][1], 0])
fillnames(database, names)
for i in names:
print(i)
我这里的代码是我在一个csv文件扫描到一个列表。然后我想通过将每个新名称扫描到一个单独的列表中,然后每次找到一个新名称时递增找到的数字,来计算有多少条目共享相同的名称。每次运行此代码时,它都返回“TypeError:列表索引必须是整数或片,而不是列表”
如果您不需要
database
:如果您确实需要
database
:原始代码中的根错误如下:
在Python中执行
for item in somelist
时item
不是索引,而是实际项。在for i in d
的情况下,d
是列表的列表,因此i
是子列表之一(行之一)。现在您应该明白了为什么Python会被d[i]
搞糊涂,并给出“TypeError:列表索引必须是整数或片,而不是列表。”相关问题 更多 >
编程相关推荐