理解涉及 min 函数的列表理解
Understanding list comprehension involving min function
我精通list comprehension
。
但是,我无法理解下面的语句:
min((-len(list), list[-1] - list[0] + 1) for list in [[0, 4], [1, 2]])[1]
我只理解 for list in [[0, 4], [1, 2]]
迭代列表的部分。
因此,list
将依次为 [0,4]
和 [1,2]
。对于第一个,元组将是 (-2, 5)
(5 == 4 - 0 + 1),对于第二个,元组将是 (-2, 2)
(2 == 2 - 1 + 1 ).其中最小的是 (-2,2)
,所以这就是 returned.
所以,这是试图找到最长的子列表,并且 return 列表中第一个元素和最后一个元素之间的最小差异。
相当于下面的代码片段:
min((-len(list), list[-1] - list[0] + 1) for list in [[0, 4], [1, 2]])[1]
newlist = list()
for list in [[0, 4], [1, 2]]:
newlist.append((-len(list), list[-1] - list[0] + 1))
min = min(newlist)
output = min[1]
我精通list comprehension
。
但是,我无法理解下面的语句:
min((-len(list), list[-1] - list[0] + 1) for list in [[0, 4], [1, 2]])[1]
我只理解 for list in [[0, 4], [1, 2]]
迭代列表的部分。
因此,list
将依次为 [0,4]
和 [1,2]
。对于第一个,元组将是 (-2, 5)
(5 == 4 - 0 + 1),对于第二个,元组将是 (-2, 2)
(2 == 2 - 1 + 1 ).其中最小的是 (-2,2)
,所以这就是 returned.
所以,这是试图找到最长的子列表,并且 return 列表中第一个元素和最后一个元素之间的最小差异。
相当于下面的代码片段:
min((-len(list), list[-1] - list[0] + 1) for list in [[0, 4], [1, 2]])[1]
newlist = list()
for list in [[0, 4], [1, 2]]:
newlist.append((-len(list), list[-1] - list[0] + 1))
min = min(newlist)
output = min[1]