Python|将元组分成 n 组
给定一个元组,任务是将其分成较小的 n 组。让我们讨论一些完成给定任务的方法。
方法#1:使用枚举和范围函数
# Python code to demonstrate
# how to split tuple
# into the group of k-tuples
# initialising tuple
ini_tuple = (1, 2, 3, 4, 8, 12, 3, 34,
67, 45, 1, 1, 43, 65, 9, 10)
# printing initial tuple
print ("initial list", str(ini_tuple))
# code to group
# tuple into size 4 tuples
res = tuple(ini_tuple[x:x + 4]
for x in range(0, len(ini_tuple), 4))
# printing result
print ("resultant tuples", str(res))
输出:
initial list (1, 2, 3, 4, 8, 12, 3, 34, 67, 45, 1, 1, 43, 65, 9, 10)
resultant tuples ((1, 2, 3, 4), (8, 12, 3, 34), (67, 45, 1, 1), (43, 65, 9, 10))
方法 #2:使用 enumerate 和mod运算符
# Python code to demonstrate
# how to split tuple
# into the group of k-tuples
# initialising tuple
ini_tuple = (1, 2, 3, 4, 8, 12, 3, 34,
67, 45, 1, 1, 43, 65, 9, 10)
# printing initial tuple
print ("initial list", str(ini_tuple))
# code to group
# tuple into size 4 tuples
res = tuple(ini_tuple[n:n + 4] for n, i in enumerate(ini_tuple)
if n % 4 == 0)
# printing result
print ("resultant tuples", str(res))
输出:
initial list (1, 2, 3, 4, 8, 12, 3, 34, 67, 45, 1, 1, 43, 65, 9, 10)
resultant tuples ((1, 2, 3, 4), (8, 12, 3, 34), (67, 45, 1, 1), (43, 65, 9, 10))
方法 #3:使用 itertools 收据
# Python code to demonstrate
# how to split tuple
# into the group of k-tuples
# function to group tuple into groups of 4
def grouper(n, iterable):
args = [iter(iterable)] * n
return zip(*args)
# initialising tuple
ini_tuple = (1, 2, 3, 4, 8, 12, 3, 34,
67, 45, 1, 1, 43, 65, 9, 10)
# printing initial tuple
print ("initial list", str(ini_tuple))
# code to group
# tuple into size 4 tuples
res = tuple(grouper(4, ini_tuple))
# printing result
print ("resultant tuples", str(res))
输出:
initial list (1, 2, 3, 4, 8, 12, 3, 34, 67, 45, 1, 1, 43, 65, 9, 10)
resultant tuples ((1, 2, 3, 4), (8, 12, 3, 34), (67, 45, 1, 1), (43, 65, 9, 10))