我想要一个Python程序从文本文件中导入单词列表,并将文本文件的内容打印为两个列表.文本文件中的数据位于以下表单中:
A Alfa B Betta C Charlie
我想要一个Python程序打印出一个带有A,B,C的列表和一个带有Alfa,Betta,Charlie的列表.
这就是我写的:
english2german = open('english2german.txt', 'r') englist = [] gerlist = [] for i, line in enumerate(english2german): englist[i:], gerlist[i:] = line.split()
这是两个列表,但只打印出每个单词中的第一个字母.如何让我的代码打印出整个单词?
你想要这样的东西:
english2german = open("english2german.txt") englist = [] gerlist = [] for line in english2german: (e, g) = line.split() englist.append(e) gerlist.append(g)
与您的代码的问题之前是englist[i:]
实际上是一个切片一个列表,而不仅仅是一个单一的指标.字符串也是可迭代的,因此您基本上将一个字母填充到多个索引中.换句话说,gerlist[0:] = "alfa"
实际上会产生一些结果gerlist = ['a', 'l', 'f', 'a']
.
甚至比amo-ej1的答案还要短,而且可能更快:
In [1]: english2german = open('english2german.txt') In [2]: eng, ger = zip(*( line.split() for line in english2german )) In [3]: eng Out[3]: ('A', 'B', 'C') In [4]: ger Out[4]: ('Alfa', 'Betta', 'Charlie')
如果您使用的是Python 3.0 from future_builtins import zip
,那么这也是内存效率的.否则,更换zip
与izip
从itertools
,如果english2german
是很长.