为什么下面这行代码能像我希望的那样工作
print(len(lista[cont])-1)但这一条给了我一个错误
z = len(lista[cont]) - 1
lista.append(z)错误消息为:
TypeError: object of type 'int' has no len()为什么我可以打印元素的数量,但不能在一个变量中存储相同的值?有什么方法可以做到这一点吗?这是我的列表,例如list[0]需要返回15。RAW 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)发布于 2019-06-22 07:10:19
当您执行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]
....https://stackoverflow.com/questions/56711127
复制相似问题