方法1:使用产量
的产量关键字能够复出离开的地方,当它再次被调用的函数。这是与常规函数的关键区别。常规函数不能从它停止的地方返回。yield 关键字帮助函数记住它的状态。yield 使函数能够在暂停执行时返回值时暂停和恢复。
的产量关键字能够复出离开的地方,当它再次被调用的函数。这是与常规函数的关键区别。常规函数不能从它停止的地方返回。yield 关键字帮助函数记住它的状态。yield 使函数能够在暂停执行时返回值时暂停和恢复。
my_list = [ 'geeks' , 'for' , 'geeks' , 'like' ,
'geeky' , 'nerdy' , 'geek' , 'love' ,
'questions' , 'words' , 'life' ]
# Yield successive n-sized
# chunks from l.
def divide_chunks(l, n):
# looping till length l
for i in range ( 0 , len (l), n):
yield l[i:i + n]
# How many elements each
# list should have
n = 5
x = list (divide_chunks(my_list, n))
print (x)
|
输出:
[['geeks', 'for', 'geeks', 'like', 'geeky'],
['书呆子','极客','爱','问题','话'],
['生活']]
方法 2:使用列表推导式
列表推导式是一种在一行代码中分解列表的优雅方式。
my_list = [ 1 , 2 , 3 , 4 , 5 ,
6 , 7 , 8 , 9 ]
# How many elements each
# list should have
n = 4
# using list comprehension
final = [my_list[i * n:(i + 1 ) * n] for i in range (( len (my_list) + n - 1 ) / / n )]
print (final)
|
输出:
[[1, 2, 3, 4], [5, 6, 7, 8], [9]]
替代实现:
l = [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]
# How many elements each
# list should have
n = 4
# using list comprehension
x = [l[i:i + n] for i in range ( 0 , len (l), n)]
print (x)
|
输出:
[[1, 2, 3, 4], [5, 6, 7, 8], [9]]