列表没有属性条

时间:2017-02-17 17:10:43

标签: python python-2.7 list strip

我从文件中读取并将每个字符存储在二维数组中。我试图摆脱' \ n'在每一行的末尾。到目前为止我的代码是:

l = []
for i in range(5):
    l.append([])
f = open('file.txt','r')
count = 0
for line in f:
    for char in line:
        l[count].append(char)
    count += 1

f.close()

l[0].rstrip('\n')

我尝试过而不是l[0].rstrip('\n')

l = map(lambda s: s.strip('\n'), l)l = [i.rstrip() for i in l ]

其中每个都返回列表没有属性条带(或rstrip)的错误。有没有什么办法解决这一问题?

1 个答案:

答案 0 :(得分:1)

l列表。因此,如果您拨打l[0].rstrip(),可以在子列表中rstrip()。但即使strip()有效,你也不会看到任何差异,因为字符串是不可变的,因此它将返回一个 new 字符串,而不是更新旧字符串。

但您可以轻松使用:

l[0] = [x.rstrip('\n') for x in l[0]]

仅更新l[0]

如果要更新所有子列表,可以使用以下列表解析:

l = [[x.rstrip('\n') for x in s] for s in l]

此外,将文件读入内存的代码非常奇怪:它仅在文件少于六行时才有效。您可以使用以下方法:

with open('file.txt','r') as f:
    l = [list(line.rstrip('\n')) for line in f]

这将替换问题中的整个代码片段。