Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将元素列表分组成对?_Python_Python 3.x - Fatal编程技术网

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的可比较索引中选取一个值,然后返回一个元组生成器
  • 使用zip()时,建议所有iTerable的长度相等。

    列表理解
    嘿,如果任何一个答案对你有帮助,那就接受这个吧。
    >>> 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]