Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 意外地将列表放置在列表中?_Python_Python 3.x_Io - Fatal编程技术网

Python 意外地将列表放置在列表中?

Python 意外地将列表放置在列表中?,python,python-3.x,io,Python,Python 3.x,Io,当我运行这个文件时,所有内容似乎都计算正确,除了列表中的各个列表元素。这使得我很难对列表的各个部分执行其他一些操作 我的代码: 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().splitline

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

我的代码:

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)
当我运行这段代码时,它返回['test1']、['test2']、['test3']、['test4']、['test5']。 对此我能做些什么吗?

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

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

此部分:

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

growthslist.append(f.readline())
如果需要从行中删除多余的空格,请使用
str.strip()

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

f.read().splitlines()

也可以考虑使用。它将确保您的文件始终处于关闭状态,无论程序执行过程中出现任何错误或问题。

此部分:

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

growthslist.append(f.readline())
如果需要从行中删除多余的空格,请使用
str.strip()

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

f.read().splitlines()

也可以考虑使用。它将确保无论程序执行过程中出现任何错误或问题,您的文件始终处于关闭状态。

您可以尝试以下操作:

f = [i.strip('\n') for i in open('filename.txt')]
您可以尝试以下方法:

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

删除
.splitlines()
。您可能会在代码中发现有用的内容<代码>对于计数,枚举(f)中的行:删除
.splitlines()
。您可能会在代码中发现有用的内容<代码>对于计数,枚举(f)中的行:['Test1\n','Test2\n','Test3\n','Test4\n','Test5\n']@我知道这太恶心了。如果您有多余的空格,请使用
str.strip()
将其删除。我会更新我的答案以包括这一点。@非常恶心,很高兴我能帮上忙:)或者,我想你可以做
f.read().splitlines()
。不过我需要测试一下,我刚刚测试过,我相信你是对的。谢谢我将把它添加到我的答案中。不过这很奇怪,因为当我只使用f.readline时,我会得到EOL字符。这是我的输出:
['Test1\n','Test2\n','Test3\n','Test4\n','Test5\n']
@我知道这太恶心了。如果您有多余的空格,请使用
str.strip()
将其删除。我会更新我的答案以包括这一点。@非常恶心,很高兴我能帮上忙:)或者,我想你可以做
f.read().splitlines()
。不过我需要测试一下,我刚刚测试过,我相信你是对的。谢谢我会在我的回答中加上这个。