假设我有:
odd = [1,3,5,7,9]
even = [2,4,6,8,10]
我想要一个输出列表:
temp = [1,2,3,4,5,6,7,8,9,10]
python 中获得此输出的方法应该是什么:“temp”在奇数和偶数列表的帮助下
另请注意,列表的长度可能不同。 这是两个实际列表:
low = ['Low: 53 °F', 'Low: 52 °F', 'Low: 53 °F', 'Low: 54 °F', 'Low: 52 °F']
high = ['High: 65 °F', 'High: 64 °F', 'High: 66 °F', 'High: 66 °F']
我想显示为:
temp =['Low: 53 °F',
'High: 65 °F',
'Low: 52 °F',
'High: 64 °F',
'Low: 53 °F',
'High: 66 °F',
'Low: 54 °F',
'High: 66 °F',
'Low': 52 °F' ]
答案 0 :(得分:3)
您可以使用 zip
并将它们链接起来(也适用于不同长度的列表):
from itertools import chain
odd = [1,3,5,7,9,1]
even = [2,4,6,8,10,4,5,6,7]
zipped = list(chain.from_iterable(zip(odd, even)))
od = len(odd)
ev = len(even)
if od == ev:
print(zipped)
elif od > ev:
print(zipped + odd[ev-od:])
else:
print(zipped + even[od-ev:])
答案 1 :(得分:2)
您可以将它们与 zip
和嵌套的 comprehension 交错:
temp = [x for pair in zip(odd, even) for x in pair]
还有一个工具——itertools.chain
——来实现扁平化:
from itertools import chain
temp = [*chain(*zip(odd, even))]
答案 2 :(得分:0)
如果您希望将所有项目按顺序排列,我建议您看一下这种单行:
odd = [1,3,5,7,9,11]
even = [2,4,6,8,10]
temp = sorted([*odd, *even])
# temp = [1,2,3,4,5,6,7,8,9,10,11]
它所做的是将两个列表解包到新列表中并对其进行排序。
注意,使用这种方法,您可以处理多个初始列表:
odd = [1,3,5,7]
even = [2,4,6,8]
mixed = [23, 111, 71]
temp = sorted([*odd, *even, *mixed])
# temp = [1,2,3,4,5,6,7,8,23,71,111]
否则,我建议您使用以下(详细说明)功能。
def func(od, ev):
ret = []
for a, b in zip(od,ev):
ret.append(a)
ret.append(b)
return ret
答案 3 :(得分:0)
这是我发现的作品。它使用函数 .sort()
并创建一个新列表。这是代码,我希望这一切都有意义:
odd = [1,3,5,7,9]
even = [2,4,6,8,10]
new = odd + even
新列表输出
[1, 3, 5, 7, 9, 2, 4, 6, 8, 10]
排序新列表
new.sort()
新的排序列表输出
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
答案 4 :(得分:0)
奇数 = [1,3,5,7,9]
偶数 = [2,4,6,8,10]
temp=奇数 + 偶数
temp.sort()
打印(温度)
答案 5 :(得分:0)
odd = [1,3,5,7,9]
even = [2,4,6,8,10]
temp = odd + even
temp.sort()
print(temp)