问题列表

时间:2019-01-31 16:28:55

标签: python-3.x

我才刚刚开始学习Python 3,并且在从文件创建字符串列表时遇到了麻烦。相反,它似乎正在列出列表。文本文件的每一行都是一个元素,是列表。每个单词都是第一个列表中列表的元素。

我已经尝试过Google搜索来从文件创建列表,并且已经阅读了几本关于Python的书。我也看过Udemy的视频。

fname = input('Enter file name: ')
try:
   fh = open(fname)
except:
    print('File not found')
    quit()

list1 = list()
for item in fh:
    list1.append(item.rstrip().split())

print(list1)

实际结果:

[["I'm", 'using', 'this', 'file', 'as', 'an', 'example'], ['of', 'pulling', 
  'a', 'list', 'of', 'strings', 'from', 'a', 'file'], ['Rather', 'than', 'making', 
  'each', 'word', 'an', 'element'], ["it's", 'making', 'each', 'line', 'an', 'element']]

预期结果:

["I'm", 'using', 'this', 'file', 'as', 'an', 'example','of', 'pulling', 'a', 
 'list', 'of', 'strings', 'from', 'a', 'file', 'Rather', 'than', 'making', 'each',
 'word', 'an', 'element', "it's", 'making', 'each', 'line', 'an', 'element']

1 个答案:

答案 0 :(得分:0)

改为使用此:

list1.append(' '.join(item.rstrip().split()))

当在字符串上使用split()方法时,它将产生一个列表,因此这就是您偏离轨道的地方,您创建了一个列表,然后将其附加到另一个列表中,这就是为什么将列表包含在列表中的原因。

str.join()方法将使用您提供的str连接列表元素