列出理解正确的格式,包括扩展表达式



我试图通过列表理解来迭代一个数字列表,以计算最大的数字,但语法似乎在回避我。确切地说,我不知道该把表达式放在哪里。我正在尝试使用计数器,并将列表中最大的数字存储在计数器中。我的方法有问题吗?任何帮助都将不胜感激。我已经经历了很多关于列表理解的问题,但我还没能找到一个有效的语法来将表达式放在列表理解中。

a = [1,2,3,4,5,6,722,4,35,353,5,4634,64,64,634,4,3]
counter= 0
b = [counter = num for num in a if num > counter]
print(b)

我不知道如何使用这个表达。我使用这个代码块使用计数器变量和for循环来捕获列表中最大的数字。使用列表理解写这篇文章的有效语法是什么?

a = [1,2,3,4,5,6,722,4,35,353,5,4634,64,64,634,4,3]
counter = 0 
for number in a:
if number > counter:
counter = number
print(counter)

列表理解不是为此而构建的。您可以通过使用一个辅助函数和一个全局变量来实现某些功能。结果是迄今为止的最大值列表。最后一个元素是全局最大

result = float('-inf')
def check(n):
global result
if result < n:
result = n
return True
else:
return False
a = [1,2,3,4,5,6,722,4,35,353,5,4634,64,64,634,4,3]
b = [x for x in a if check(x)]
print(b)

这将打印

[1, 2, 3, 4, 5, 6, 722, 4634]

简单的方法是对列表进行排序。

phyton中的示例:

>>> a = [1,2,3,4,5,6,722,4,35,353,5,4634,64,64,634,4,3]
>>> a.sort()
>>> a
[1, 2, 3, 3, 4, 4, 4, 5, 5, 6, 35, 64, 64, 353, 634, 722, 4634]
>>> a[-1]
4634
>>> b = sorted(a, reverse=True)
>>> b
[4634, 722, 634, 353, 64, 64, 35, 6, 5, 5, 4, 4, 4, 3, 3, 2, 1]
>>> b[0]
4634

最新更新