day03 每日一行
问题描述
用列表解释式 、生成器表达式实现
字典列表为:
[{'first': 'john', 'last': 'smith', 'email': 'jsmith@exsample.com'},
{'first': 'jane', 'last': 'doan', 'email': 'jane@example.com'},
{'first': 'david', 'last': 'neilson', 'email': 'david@example.com'}]
email.txt
first last email
john smith jsmith@exsample.com
jane doan jane@example.com
david neilson david@example.com
代码展示
# 封装函数
def readlist(path):
list = []
# list1 = []
with open(path, 'r') as restream:
container = restream.readlines()
for i in container:
list.append(i.replace('
', '').replace(' ', ' '))
a = list[0].split(' ')
# for i in range(1, len(list)):
# b.append(list[i].split(' '))
b = [list[i].split(' ') for i in range(1, len(list))]
for i in b:
c = 0
dict = {}
for j in i:
dict[a[c]] = j
c += 1
if (c == 3):
continue
yield dict
# list1.append(dict)
return 'done'
# 主程序
list = []
path = '基础语法email.txt'
g = readlist(path)
for i in g:
list.append(i)
print(list)
进阶使用zip
def list_parsing():
with open('基础语法email.txt','r') as f:
header=f.readline().strip().split(' ')
list =[
dict(zip(header,line.strip().split(' '))) for line in f.readlines()
]
print(list)