给定一个限制和一个包含任意数量项的列表列表,我想要截取列表中所有列表项的总数等于限制的部分。
目前我的努力:
lol = [['a', 'v', '1', 'r'], ['d', 'x', 'b'], ['s', '0', 'u', 'x']]
def cut_lol(lol, n):
count = 0
result = []
for l in lol:
if count + len(l) > (n):
new_len_l = count + len(l) - n
result.append(l[:new_len_l])
return result
result.append(l)
count += len(l)
return result
但是这个函数有问题,我看不出来是什么。
例如:
print(cut_lol(lol, 8))
# returns [['a', 'v', '1', 'r'], ['d', 'x', 'b'], ['s', '0', 'u']]
# should be: [['a', 'v', '1', 'r'], ['d', 'x', 'b'], ['s']]
print(cut_lol(lol, 4))
# returns [['a', 'v', '1', 'r'], ['d', 'x', 'b']]
# should be: [['a', 'v', '1', 'r']]
print(cut_lol(lol, 3))
# returns [['a']]
# should be: [['a', 'v', '1']]
有谁能帮我让这个工作起来吗?谢谢!