gio*_*lio 11 python split tuples list
我有一个很长的元组
(2, 2, 10, 10, 344, 344, 45, 43, 2, 2, 10, 10, 12, 8, 2, 10)
Run Code Online (Sandbox Code Playgroud)
我试图把它分成像元组一样的元组
((2, 2, 10, 10), (344, 344, 45, 43), (2, 2, 10, 10), (12, 8, 2, 10))
Run Code Online (Sandbox Code Playgroud)
我是python的新手,并且对于元组o(2,2,10,10,344,344,45,43,2,10,10,12,8,2,10)r列表不是很好.我的朋友说我应该分开它,但我不能得到它-_-
我需要将元组拆分为带有4个元素的元组,稍后我将使用矩形绘制到带有PIL的图像.
那有一定的成语:
def grouper(n, iterable):
args = [iter(iterable)] * n
return zip(*args)
t = (2, 2, 10, 10, 344, 344, 45, 43, 2, 2, 10, 10, 12, 8, 2, 10)
print grouper(4, t)
Run Code Online (Sandbox Code Playgroud)
但它的那种复杂的解释.itertools receipes中列出了稍微更为通用的版本.
你也可以自己切片
parts = (t[0:4], t[4:8], t[8:12], t[12:16])
# or as a function
def grouper2(n, lst):
return [t[i:i+n] for i in range(0, len(t), n)]
Run Code Online (Sandbox Code Playgroud)
这可能是你朋友的意思.