将元组附加到列表

时间:2019-06-16 19:29:01

标签: python list dictionary tuples

我是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.

1 个答案:

答案 0 :(得分:0)

一种方法是使用zipitertools.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()构造一个列表