Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.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列表转换为1/2行的元组列表?_Python_List_Optimization_Tuples_Logic - Fatal编程技术网

如何将python列表转换为1/2行的元组列表?

如何将python列表转换为1/2行的元组列表?,python,list,optimization,tuples,logic,Python,List,Optimization,Tuples,Logic,输入:['a','b','c','d','e'] 输出:[('a','b'),('c','d'),('e')] 我如何在1或2行代码中完成它 目前,我有以下几点: def tuple_list(_list): final_list = [] temp = [] for idx, bat in enumerate(_list): temp.append(bat) if idx%2 == 1: final_list.ap

输入:
['a','b','c','d','e']

输出:
[('a','b'),('c','d'),('e')]

我如何在1或2行代码中完成它

目前,我有以下几点:

def tuple_list(_list):
    final_list = []
    temp = []
    for idx, bat in enumerate(_list):
        temp.append(bat)
        if idx%2 == 1:
            final_list.append(temp)
            temp = []
    if len(temp) > 0: final_list.append(temp)
    return final_list
        
tuple_list(['a','b','c','d','e'])

您可以使用列表理解。首先,我们将有一个步长为2的范围。使用此选项,我们将从输入列表中选取适当的切片,以获得所需的结果:

lst = ['a','b','c','d','e']
result = [tuple(lst[i:i+2]) for i in range(0, len(lst), 2)]

试试这个列表

x = ['a','b','c','d','e']
[(x[i],x[i+1]) for i in range(0,len(x)-1) if i%2==0]
通过在列表上移动大小为2的滑动窗口,可以对数组进行切片

范围(开始、结束、步骤)帮助您一步一步地移动窗口(本例中为2),而切片帮助您从较大的列表中创建较小的列表


列表理解中的所有内容都提供了所需的输出。

您可以使用内置的iter()函数创建一个迭代器,并将其传递给内置的zip()函数

l = ['a','b','c','d','e']
i = iter(l)
zip(i, i)
如果您想按3分组,可以将其传递3次到zip()

例如,范围(0,len(a),2)内i的
[元组(a[i:i+2])
。看见
l = ['a','b','c','d','e']
i = iter(l)
zip(i, i)
zip(i, i, i)