gpt4 book ai didi

python - 如何获取列表中特定对象的长度

转载 作者:行者123 更新时间:2023-12-01 07:41:09 27 4
gpt4 key购买 nike

为什么下面的代码行按我的意愿工作

print(len(lista[cont])-1)

但是这个给了我一个错误

z = len(lista[cont]) - 1
lista.append(z)

错误信息是:

TypeError: object of type 'int' has no len()

为什么我可以打印元素的数量,但无法在变量中存储相同的值?有办法做到这一点吗?这是我的列表,例如 list[0] 需要返回 15RAW txt code can be found here .

[['1', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU'], ['2', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU'], ['3', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU'], ['4', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU'], ['5', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU'], ['6', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'ES', 'ES', 'CPU', 'CPU'], ['7', 'CPU', 'ES', 'CPU', 'ES', 'CPU', 'ES', 'CPU', 'ES', 'CPU'], ['8', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'ES', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'ES', 'ES', 'CPU', 'CPU']]

完整代码:

lista = []

nomeArquivo = 'entrada.txt'
f = open(nomeArquivo,'r')
cont = 0

for a in f.readlines():
linha = a.replace('\n', '')
lista.append(linha.split(";"))
z = len(lista[cont]) - 1
lista.append(z)
cont+=1
print(lista)

最佳答案

当您执行lista.append(z)时,您将向lista添加一个整数,然后当您尝试len(lista[idx])时- 1,您最终尝试计算整数的长度,因此出现异常 TypeError: object of type 'int' has no len()

相反,您希望将长度附加到使用 lista[idx].append(z) 添加的子列表的末尾。您还想使用with context manager与文件交互

lista = []

#Open your file
with open('entrada.txt') as f:

#Use enumerate to iterate over the lines and get index and element
for idx, a in enumerate(f.readlines()):
linha = a.replace('\n', '')
lista.append(linha.split(";"))
z = len(lista[idx]) - 1

#Append length at the end of sublist
lista[idx].append(z)

print(lista)

输出将是

[['1', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 15], 
['2', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 7],
['3', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 'CPU', 28]
....

关于python - 如何获取列表中特定对象的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56711127/

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