Python 如何将元素列表分组成对?
比如说Python 如何将元素列表分组成对?,python,python-3.x,Python,Python 3.x,比如说 l = [1, 2, 3, 4, 5, 6, 7, 8] 我怎样才能做到: l = [12, 34, 56, 78] 使用zip,您可以将元素组合在一起 >>> l = [1,2,3,4,5,6,7,8] >>> temp = list(zip(l[::2],l[1::2])) # [(1, 2), (3, 4), (5, 6), (7, 8)] 现在使用列表理解组合它们 >>> out = [a*10+b for a,b in
l = [1, 2, 3, 4, 5, 6, 7, 8]
我怎样才能做到:
l = [12, 34, 56, 78]
使用
zip
,您可以将元素组合在一起
>>> l = [1,2,3,4,5,6,7,8]
>>> temp = list(zip(l[::2],l[1::2]))
# [(1, 2), (3, 4), (5, 6), (7, 8)]
现在使用列表理解
组合它们
>>> out = [a*10+b for a,b in temp]
>>> out
=> [12, 34, 56, 78]
一个粗糙的方法可能是,但你来吧-
l = [1,2,3,4,5,6,7,8]
[ int(str(l[a])+str(l[a+1])) for a in range(0,len(l),2) ]
一,<代码>范围(0,len(l),2)]正在迭代其他元素
l[a]
和l[a+1]
正在转换为string
,并连接在一起int
最后,整个逻辑在一行中的列表理解中完成。希望有帮助 在答案上,我的答案很相似,但我的答案是这样的。 这两种一行程序中的任何一种都可以工作:
way1 = [first*10 + nxt for first, nxt in zip(l[::2], l[1::2])]
way2 = [int(str(first) + str(nxt)) for first, nxt in zip(l[::2], l[1::2])]
通常,您可以执行以下操作:
general_way = [elems for elems in zip(l[::2], l[1::2])]
print(general_way)
[(1,2)、(3,4)、(5,6)、(7,8)]#一般方式
对于那些阅读python和不熟悉python的人:
a_列表[开始索引:结束索引:步进]
--所以l[::2]意味着从索引0开始,包括索引-1结束,然后从开始索引到第二个元素
对于zip中的elem1、elem2、…、elemN(iterable1、iterable2、…、iterableN):
--zip()获取多个iterables,并从每个iterables的可比较索引中选取一个值,然后返回一个元组生成器
嘿,如果任何一个答案对你有帮助,那就接受这个吧。
>>> l = [1,2,3,4,5,6,7,8]
>>> x = [int(str(l[a])+str(l[a+1])) for a in range(0,len(l),2)]
>>> x
[12, 34, 56, 78]