我有一些代码据说可以提取最大数量的整数列表。如果列表的大小未知,则可能是5个数字或30个数字,如何在if循环中指定呢?
f = 3,2,5,9,13,1,...
for loop in (f):
x = f[0]
if(x < f[0] or x < f[1] or x < f[2] or x < f[3] or x < f[4] or x < f[5] or ...):
x = f[0+1]
答案 0 :(得分:2)
您要使用的是max
。随附可迭代的max
将返回具有最大价值的项目。
>>> f = 3,2,5,9,13,1
>>> max(f)
13
答案 1 :(得分:2)
我不确定您的误解是什么。
您需要跟踪最大的:
largest = f[0]
for loop in f:
if loop > largest:
largest = loop
有一个很好的内置函数max
,它非常灵活。
答案 2 :(得分:0)
您不必指定大小。只需对列表进行排序即可获得最后的最大数字,如下所示。
f.sort()
print("Largest number is:", f[-1])
希望有帮助。
谢谢。
答案 3 :(得分:0)
如果您想最大程度地发挥功能,
def get_max(int_list):
best_max = False
for value in int_list:
if best_max == False or best_max < value:
best_max = value
return best_max
int_list = [-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print ( get_max(int_list) )
如果数组为空,您会看到它返回False。
为什么不使用max(f)函数?
答案 4 :(得分:-1)
我认为您正在尝试定义某种排序算法?您想将列表中的条目与列表中的所有先前条目进行比较,对吗?您可以使用 if cell.hyperlink is not None:
newCell.hyperlink = copy(cell.hyperlink)
来对列表进行子集化,并与之进行比较:
list.index()
您将发现,如果条件的计算结果为f = 3,2,5,9,13,1,...
for loop in (f):
listy= f[0:f.index(loop)] # subset list up to current element
# loop is not a reserved word, but
# I still wouldn't use it in this sense
for y in listy: # iterate through subset
if loop < y: # check conditional
loop = f[f.index(loop)+1] # move up one element in the list
,此处的输出将替换列表中的下一个元素。它不会向前推进。使用提供的True
,它会以f
结尾,因为列表是在原位进行修改。您需要输入更多列表,然后从那里开始。