我有一个较大的列表,我想对其进行分配或以其他方式对较小列表的元素执行操作,但只执行一次。例如:
emailList = ['tom@gmail.com', 'dick@gmail.com', 'harry@gmail.com', 'jane@gmail.com']
fileList = ['file_1.zip', 'file_2.zip']
我想交替地将 fileList 的元素分配给 emailList 的元素。所以:
tom@gmail.com -> file_1.zip
dick@gmail.com -> file_2.zip
harry@gmail.com -> file_1.zip
jane@gmail.com -> file_2.zip
我有这个......一半工作(为了简单起见,我只是使用 print 语句来表示动作):
for email in emailList:
for file in zippedList:
print(email + "will receive " + file)
zippedList.pop(0)
产量:
Email: tom@gmail.com
will receive Contest_Packet_1.zip
Email: dick@gmail.com
will receive Contest_Packet_2.zip
当然,问题是一旦 zippedList 为空,它就结束,并且不再进行进一步的分配。但是,当我不弹出较小列表的元素时,较大列表的元素都会获得分配或以其他方式操作的较小列表中的两个元素。它产生这样的结果:
Email: tom@gmail.com
will receive Contest_Packet_1.zip
Email: tom@gmail.com
will receive Contest_Packet_2.zip
Email: dick@regula.one
will receive Contest_Packet_1.zip
Email: dick@regula.one
will receive Contest_Packet_2.zip
Email: harry@gmail.com
will receive Contest_Packet_1.zip
Email: harry@gmail.com
will receive Contest_Packet_2.zip
Email: jane@gmail.com
will receive Contest_Packet_1.zip
Email: jane@gmail.com
will receive Contest_Packet_2.zip
当然有一种更简单的方法可以做到这一点。想法?
神不在的星期二
相关分类