【发布时间】:2019-06-14 07:03:55
【问题描述】:
我无法理解特定的列表理解示例。在下面的示例代码中,列表推导用于 set 方法的参数。我见过的大多数示例通常看起来像“x for x in y”。我已经阅读了文档,但它并没有为我清除它。 [marks for name] 到底在做什么。不应该是[对分数的分数]?
marksheet = []
for _ in range(0,int(input())):
marksheet.append([input(), float(input())])
second_highest = sorted(list(set([marks for name, marks in marksheet])))[1]
print('\n'.join([a for a,b in sorted(marksheet) if b == second_highest]))
【问题讨论】:
-
您需要查找列表推导以理解第一行,以及第二行的
join的文档。 -
它也过于复杂。
sorted(list(set([marks for name, marks in marksheet])))[1]=>sorted({marks for name, marks in marksheet})[1] -
我查了列表理解,但还是不明白。我只看到列表理解的迭代部分,但没有看到转换或过滤,因此我不理解表达式。
标签: python python-3.x list list-comprehension