【发布时间】:2016-03-16 05:04:51
【问题描述】:
def some_generator(sum_limit, index_value):
"""
>>> list(some_generator(20, 4))
[[1, 2, 3], [2, 5, 6], [3, 7, 10], [4, 5, 11], [3, 5, 15], [4, 5, 9]]
"""
a = [[1, 2, 3], [2, 5, 6], [3, 7, 10], [4, 5, 11],
[3, 5, 15], [4, 5, 9], [4, 6, 12], [1, 5, 19]]
for i in a:
if sum(i) <= sum_limit or i[0] < index_value:
yield i
else:
break
def foo(_generator):
"""
>>> foo(some_generator(20, 4))
[[1, 2, 3], [2, 5, 6], [3, 5, 15], [3, 7, 10], [4, 5, 9], [4, 5, 11]]
"""
x = list(_generator)
return sorted(x)
1) 对于函数some_generator,如何实现:如果sum_limit是None,则改变if条件
if sum(i) <= sum_limit or i[0] < index_value:
到
if i[0] < index_value:
反之亦然(如果index_value是None,则将if条件改为:
if sum(i) < sum_limit:
2) 对于函数foo,如何根据参数进行排序? (例如,我可能希望根据最后一个元素的值对列表进行排序,或者我可能希望根据每个元素的总和进行排序。)
【问题讨论】:
-
每个帖子一个问题,请。
标签: python sorting python-3.x arguments