How to group list items into tuple?
本问题已经有最佳答案,请猛点这里访问。
我有一个数字列表,如何将每个
例如,如果我有一个列表
1 | b = [(0,1,2,3,4),(5,6,7,8,9)] |
我该怎么做?如果
1 2 3 4 | >>> a [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> [tuple(a[i:i+5]) for i in range(0, len(a), 5)] [(0, 1, 2, 3, 4), (5, 6, 7, 8, 9)] |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | In [18]: def f(lst,n): ...: if len(lst)%n != 0: ...: raise ValueError("{} is not a multiple of {}".format(len(lst),n)) ...: return zip(*[iter(lst)]*n) In [19]: lst = range(10) In [20]: f(lst,5) Out[20]: [(0, 1, 2, 3, 4), (5, 6, 7, 8, 9)] In [21]: f(range(9),5) --------------------------------------------------------------------------- ValueError Traceback (most recent call last) <ipython-input-21-814a68e0035f> in <module>() ----> 1 f(range(9),5) <ipython-input-18-3ca911a04fd3> in f(lst, n) 1 def f(lst,n): 2 if len(lst)%n != 0: ----> 3 raise ValueError("{} is not a multiple of {}".format(len(lst),n)) 4 return zip(*[iter(lst)]*n) ValueError: 9 is not a multiple of 5 |
你确定这是一组n个长度
1 2 3 4 | if (len(your_list)%n==0): wish_list = [ tuple(your_list[i:i+N]) for i in range(0, len(your_list), N) ] else: raise Exception("not divisible by N") |