当前位置:  开发笔记 > 编程语言 > 正文

Python中列表输出有问题

如何解决《Python中列表输出有问题》经验,为你挑选了2个好方法。

我想要一个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()

这是两个列表,但只打印出每个单词中的第一个字母.如何让我的代码打印出整个单词?



1> mipadi..:

你想要这样的东西:

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'].



2> Autoplectic..:

甚至比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,那么这也是内存效率的.否则,更换zipizipitertools,如果english2german是很长.

推荐阅读
jerry613
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有