Py学习  »  Alex Bogomolov  »  全部回复
回复总数  1
6 年前
回复了 Alex Bogomolov 创建的主题 » python zip函数从文件中删除太多项

让我们试着解构你的代码。 你在奖品列表和电子邮件列表的第一项中找到匹配项,对吗?然后从奖品列表中删除每个给定的奖品。然后,如果您还有任何奖品,您可以将其添加到奖品文件中。

prize_list = ['p1', 'p2', 'p3', 'p4', 'p5', 'p6']
email_list = ['e1', 'e2', 'e3', 'e4']

matches = list(zip(prize_list, email_list))

for prize, winner in matches:
    print(f'{prize} goes to {winner}')
    print("Before: ", prize_list)
    print('removing', prize)
    prize_list.remove(prize)
    print('{} prizes left'.format(len(prize_list)))

prize_file = 'prizeFile.txt'
with open(prize_file, "w") as file_:
    for prize in prize_list:
        file_.write(prize)
        file_.write('\n')

输出:

p1 goes to e1
Before:  ['p1', 'p2', 'p3', 'p4', 'p5', 'p6']
removing p1
5 prizes left
p2 goes to e2
Before:  ['p2', 'p3', 'p4', 'p5', 'p6']
removing p2
4 prizes left
p3 goes to e3
Before:  ['p3', 'p4', 'p5', 'p6']
removing p3
3 prizes left
p4 goes to e4
Before:  ['p4', 'p5', 'p6']
removing p4
2 prizes left
After: ['p5', 'p6']