不小心把名单放在名单里了?

2024-09-30 10:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行这个文件时,所有的东西似乎都计算正确,除了列表中的各个列表元素结束了这个事实。这使得我很难对列表的各个部分执行其他操作

我的代码:

growthslist = []
f = open("growths.txt",'r')
count = 0
for line in f:
    count+=1
charnum = int((count/9))
f.seek(0)
for i in range(count):
    growthslist.append(f.readline().splitlines())
namelist = []
namecounter = 0
for i in range(charnum):
    namelist.append(growthslist[namecounter])
    namecounter +=9
print(namelist)

当我运行此代码时,它返回[['Test 1']、['Test 2']、['Test 3']、['Test 4']、['Test 5']]。 我能做些什么吗


Tags: 文件代码intest元素列表forcount
3条回答

f.readline()返回一行。没有理由分开.splitlines()将其转换为一个列表

本部分:

growthslist.append(f.readline().splitlines())

是你的问题str.splitlines()返回一个列表。这就是为什么你看到的是一个列表列表,而不是一个简单的列表。但是您不需要str.splitlines(),因为您已经在使用file.readline()。就用这个:

growthslist.append(f.readline())

如果需要从行中去掉多余的空格,请使用str.strip()

growthslist.append(f.readline().strip())

正如@idjaw在评论中指出的,实现目标的另一种方法是读取文件的内容,然后使用splitlines()分隔每一行,删除任何尾随空格:

f.read().splitlines()

另外,考虑使用context manager statement ^{}。它将确保您的文件将始终关闭,无论程序执行过程中出现任何错误或问题

你可以试试这个:

f = [i.strip('\n') for i in open('filename.txt')]

相关问题 更多 >

    热门问题