Carlos Cardoso Asked: 2020-09-05 10:54:16 +0800 CST 2020-09-05 10:54:16 +0800 CST 2020-09-05 10:54:16 +0800 CST 如何在python中成对获取列表的元素[关闭] 772 我在 python 中有这个列表 [a,b,c,d,e,f,g,h] 如何通过存储在元组列表中的对获取元素。因此: [(a,b),(c,d),(e,f),(g,h)] python 2 Answers Voted Carlos Cardoso 2020-09-05T11:31:42+08:002020-09-05T11:31:42+08:00 我能够使用 zip 功能解决它。 lista = [a,b,c,d,e,f,g,h] 使用 zip 函数生成由元组组成的列表 zipped = zip(lista[0::2], lista[1::2]) 压缩结果: [(a,b),(c,d),(e,f),(g,h)] Best Answer ChemaCortes 2020-09-05T14:14:36+08:002020-09-05T14:14:36+08:00 从列表中获取N项目元组的通用解决方案: def troceo(lista, n): return list(zip(*[iter(lista)]*n)) 部分解释: iter(lista)从列表中获取迭代器 [iter(lista)]*nn使用相同的重复迭代器创建长度列表 zip(*[iter(lista)]*n)将列表作为参数传递,相当于传递n迭代器次数。也就是说,它zip(*[it]*2)等价于zip(it,it) list(zip(*[iter(lista)]*n))将结果转换为列表(在 python3 中,zip 返回另一个迭代器)
我能够使用 zip 功能解决它。
使用 zip 函数生成由元组组成的列表
压缩结果:
从列表中获取
N
项目元组的通用解决方案:部分解释:
iter(lista)
从列表中获取迭代器[iter(lista)]*n
n
使用相同的重复迭代器创建长度列表zip(*[iter(lista)]*n)
将列表作为参数传递,相当于传递n
迭代器次数。也就是说,它zip(*[it]*2)
等价于zip(it,it)
list(zip(*[iter(lista)]*n))
将结果转换为列表(在 python3 中,zip 返回另一个迭代器)