day03 每日一行
阅读原文时间:2023年07月13日阅读:1

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('\n', '').replace('\t', ' '))
        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)