如何通过将初始列表中的2个元素连接在一起,将16个元素的列表减少为8个元素

时间:2014-05-28 07:26:25

标签: python list

我有以下列表:

lst1=['ff','55','00' ,'90', '00' ,'92', '00' ,'ad' ,'00', 'c6', '00', 'b7', '00', '8d', '00' ,'98']

我想将列表中的每两个元素加在一起以获得新的简化

list2=[ff55, 0099, 0092, 00ad, 00c6,00b7,008d,0098] 任何想法写下来。 感谢

3 个答案:

答案 0 :(得分:1)

lst1=['ff','55','00' ,'90', '00' ,'92', '00' ,'ad' ,'00', 'c6', '00', 'b7', '00', '8d', '00' ,'98']
lst2=[]

for i in range(len(lst1)/2):
    lst2.append(lst1.pop(0)+lst1.pop(0))
print(lst2)

<强>输出: ['ff55','0090','0092','00ad','00c6','00b7','008d','0098']

答案 1 :(得分:1)

Diclaimer

我是出于好奇而做到的,并且决定因为我已经花了我的时间,所以我会发布它。我仍然支持OP应该为此付出更多努力的观点,并且我已经投票决定关闭这个问题。


反正:

list(map(lambda x: x[0]+x[1], zip(a[::2], a[1::2])))

a[::2]list slicing syntaxa[::2]表示“从第一个开始每隔一个元素”,a[1::2]表示“从第二个元素开始每隔一个元素”

zip将两个序列压缩在一起:

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> list(zip(a,b))
[(1, 4), (2, 5), (3, 6)]

map将函数应用于可互换的

中的每个项目
>>> a = [1,2,3]
>>> list(map(lambda x: x+1, a))
[2, 3, 4]

lambda是python lambda notation。这是创建匿名函数的捷径。

答案 2 :(得分:0)

改进Yash的答案:

这是一个现场解决方案:

lst1=['ff 55 00 90 00 92 00 ad 00 c6 00 b7 00 8d 00 98']

for i in range(len(lst1)/2):
    lst1.insert(i, lst1.pop(i)+lst1.pop(i))

print(lst1)

输出:[&#39; ff55&#39;,&#39; 0090&#39;,&#39; 0092&#39;,&#39; 00ad&#39;,&#39; 00c6&#39; ,&#39; 00b7&#39;,&#39; 008d&#39;,&#39; 0098&#39;]

这样就不需要第二个列表......当然这取决于你的应用程序