在python中从文件创建一个列表

时间:2013-12-03 05:24:14

标签: python string file list

我有一个像这样的.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]的结果是每个字符串的第二个字母。

2 个答案:

答案 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)

  1. 从文件中读取时,请始终使用with,这样您就不必担心关闭文件了。
  2. 然后,你可以阅读并分割它们,最后像这样解压缩它们

    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')
    
  3. 您可以像这样访问个人姓名和年龄

    names[0], ages[0]