l=[1,4,5,6,3,2,4,0]
我希望到了来是如何从一个数字的整数列表创建一个双位整数列表?
newlist=[14,56,32,40]
我已经试过
for i in l[::2]:
newlist.append(i)
做
l=[1,4,5,6,3,2,4,0]
我希望到了来是如何从一个数字的整数列表创建一个双位整数列表?
newlist=[14,56,32,40]
我已经试过
for i in l[::2]:
newlist.append(i)
做
您可以在列表解析中使用zip()
功能是什么:
>>> lst = [1,4,5,6,3,2,4,0]
>>> [i*10+j for i,j in zip(lst[0::2],lst[1::2])]
[14, 56, 32, 40]
至于覆盖与奇数项的列表可以使用itertools.izip_longest
(在python 3.X itertools.zip_longest
)的更一般的方法:通过将0作为参数fillvalue
:
>>> lst=[1,4,5,6,3,2,4]
>>>
>>> from itertools import izip_longest
>>> [i*10+j for i,j in izip_longest(lst[0::2],lst[1::2], fillvalue=0)]
[14, 56, 32, 40]
如果列表中有奇数个元素,则缺少最后一个元素。我已经更正了下面的 – EduardoCMB
@EduardoCMB确实只是更新了新的选择。 – Kasramvd
另一种解决方案,只是为了好玩
lst = [1,4,5,6,3,2,4,0]
it = iter(lst)
for i in it:
num = int(str(i) + str(next(it)))
print num
你也错过了列表的最后一个元素,其中有奇数个元素 – EduardoCMB
的确,在这种情况下刚刚询问OP的期望 –
lst = [1,4,5,6,3,2,4,0,1]
length = len(lst)
newList = [i*10+j for i,j in zip(lst[::2],lst[1::2])]
if length % 2 == 1:
newList.append(lst[-1]*10)
print newList
输出:
[14, 56, 32, 40, 10]
重要问题:如果列表中有1个项目,例如l = [1,4,5,6,3,2,4,0,9],您会期望什么结果? –