我是python的新手。是否可以将我的元组添加到一个空列表中,但是以一种有序的方式?
我知道,if i not in myTransfer:
部分也不理想,只是为了获得更清晰的输出。
我尝试在下面的代码中执行此操作,但是如果有更简单的解决方案,将不胜感激
tupDays = ('Monday', 'Wednesday', 'Monday')
tupAmount = (100,300,100)
myTransfer = []
for a in tupAmount:
myTransfer.append(a)
for i in tupDays:
if i not in myTransfer:
myTransfer.append(i)
print(myTransfer)
我想得到的是:
[100,Monday,200,Wednesday,100,Monday]
也许最好将其放入字典中,这样它就可以成为键-值对,如下所示,但我似乎无法掌握需要使用的内置方法。
{
100: 'Monday',
300: 'Tuesday',
100: 'Monday'
}
Thank you so much for the help.
答案 0 :(得分:0)
一种方法是使用zip和itertools.chain。
在这里,我假设两个元组具有相同的长度。
import itertools
my_transfer = list(itertools.chain(*zip(tupAmount, tupDays)))
# [100, 'Monday', 300, 'Wednesday', 100, 'Monday']
工作原理:
1)zip聚合来自两个元组的元素。
>>> list(zip(tupAmount, tupDays))
[(100, 'Monday'), (300, 'Wednesday'), (100, 'Monday')]
2)itertools.chain返回可迭代对象中的元素。星号运算符将元组列表解压缩。这对应于:
>>> list(itertools.chain((100, 'Monday'), (300, 'Wednesday'), (100, 'Monday')))
[100, 'Monday', 300, 'Wednesday', 100, 'Monday']
3)最后,list()构造一个列表