在python中,从文本文件读入两个列表中的数据

2024-05-14 00:21:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我的文本文件格式是:

apple      very healthy
orange     tangy and juicy
banana     yellow in color and yummy

我需要创建两个列表:

^{pr2}$

或将值转换为字典:

d1={'apple':'very healthy','orange':'tangy and juicy','banana':'yellow in color and yummy'}

文件中的前两列用制表符分隔。在

我尝试使用以下代码将其更改为两个列表,然后将其转换为字典:

l1=[]
l2=[]
d={}
read_file=open('edges.txt','r')
split= [line.strip() for line in read_file]
for line in split:
    l1.append(line.split('\t')[0])
    l2.append(line.split('\t')[1:])
d=dict(zip(l1,l2))
print d

我得到了一些不正确的值。我是python的新手。。在


Tags: andinl1applelineverycolorsplit
3条回答

确保你的文本文件包含这些值之间的制表符,我从这里复制的内容有空格。在

文本文件:

apple   very healthy
orange  tangy and juicy
banana  yellow in color and yummy

脚本的输出:

{'orange': ['tangy and juicy'], 'apple': ['very healthy'], 'banana': ['yellow in color and yummy']}

进口re

d = {}
with open('data') as f:
    for line in f:
        mobj =  re.match('(\w+)\s+(.*)',line)
        key, value = mobj.groups()
        d[key] = value


for k,v in d.items():
    print(k,"   ", v )

输出

香蕉黄的颜色和美味

苹果很健康

橙汁味

line.split('\t')返回一个列表,line.split('\t')[0]返回该列表的第一个元素('apple','orange','banana')。在

l2.append(line.split('\t')[1:]返回一个列表,因为[1:]slice。也许你想要l2.append(line.split('\t')[1]代替?在

我忍不住重写了代码:

d={}
for line in open('edges.txt','r'):
    split = line.strip().split('\t', 1)
    d[split[0]] = split[1]
print d

相关问题 更多 >