我有一个像这样的.txt文件:
John 26
Mary 48
Nick 34
我想导入它们并将它们放在一个列表中,以便我可以找到特定的元素。例如,age [1]的值为48,name [1]的值为Mary等。
我试过
import sys,random
f = open('example.txt', 'r')
for line in f:
tokens=line.split()
a=tokens[0]
print a[1]
但是打印a [1]的结果是每个字符串的第二个字母。
答案 0 :(得分:3)
而不是a[1]
,您需要tokens[1]
。
这是a
的值,tokens
的第一个元素:
Nick
但tokens
的第二个要素是年龄:
"34"
正如@user所提到的,你可能希望将它作为整数而不是字符串。您可以将其转换为整数:
a = int(tokens[1])
@thefourtheye提出了一个很好的解决方案。我想我会建议将它存储在字典中:
with open('example.txt') as f:
ages = {}
for line in f:
d = line.split()
ages[d[0]] = int(d[1])
这是ages
:
{'John':26, 'Mary':48, 'Nick':34}
要检索John
的年龄:
print(ages['John'])
希望这有帮助!
答案 1 :(得分:2)
with
,这样您就不必担心关闭文件了。然后,你可以阅读并分割它们,最后像这样解压缩它们
with open('Input.txt', 'r') as inFile:
names, ages = zip(*(line.rstrip().split() for line in inFile))
print names, ages
<强>输出强>
('John', 'Mary', 'Nick') ('26', '48', '34')
您可以像这样访问个人姓名和年龄
names[0], ages[0]