我有一个列表和一些变量:
nums = [14, 8, 9, 16, 3, 11, 5]
big = nums[0]
spot = 0
我对如何实际操作感到困惑。我希望通过这个练习来给自己一个起点。在Python上我该如何做呢?
通常情况下,您可以直接使用
max(nums)
如果您明确想要使用循环,请尝试:
max_value = None
for n in nums:
if max_value is None or n > max_value: max_value = n
给你...
nums = [14, 8, 9, 16, 3, 11, 5]
big = max(nums)
spot = nums.index(big)
这是实现这个功能的Pythonic方式。如果你想使用循环,那么循环当前最大值并检查每个元素是否更大,如果是,则将其分配给当前最大值。for i in range(len(list)): # for loop iterates through it
. 这是一种明确的重复列表长度次数的方法。这适用于索引;如果您想要重复执行x次某些操作,则range()
的“end”参数应为x + 1。因此,要重复执行与列表长度相同的x次操作,请执行:for i in range(len(list) + 1):
。 - Rushy Panchallist
是一个内置函数,最好不要将其作为变量名。你最好使用for i, _ in enumerate(seq)
而不是range(len(seq))
。 - Ryan Hainingseq
这个名称可能更容易理解。 - Rushy Panchalnums = [14, 8, 9, 16, 3, 11, 5]
big = None
spot = None
for i, v in enumerate(nums):
if big is None or v > big:
big = v
spot = i
big = nums[0]
之前 nums
不为空,如果为空,则引发异常(ValueError
是一个不错的选择)。 - PaulMcGPython已经内置了这种需求的函数。
list = [3,8,2,9]
max_number = max(list)
print (max_number) # it will print 9 as big number
list = [3,8,2,9]
current_max_number = list[0]
for number in list:
if number>current_max_number:
current_max_number = number
print (current_max_number) #it will display 9 as big number
for
循环:for i in range(len(list)):
# do whatever
range()
可以有三个参数:start
,end
和step
。Start是从哪个数字开始(如果未提供,则为0);start是包含的。End是结束的位置(必须给出);end是排除的:如果您执行range(100)
,它将给您0-99。Step也是可选的,它表示要使用的间隔。如果未提供步骤,则为1。例如:>>> x = range(10, 100, 5) # start at 10, end at 101, and use an interval of 5
>>> x
[10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95] # note that it does not hit 100
由于end
是不包括的,为了包含100,我们可以这样做:
>>> x = range(10, 101, 5) # start at 10, end at 101, and use an interval of 5
>>> x
[10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95, 100] # note that it does hit 100
对于列表中的最大值代码HS,我已经使用以下代码成功地使大部分自动评分器工作:
list = [-3,-8,-2,0]
current_max_number = list[0]
for number in list:
if number>current_max_number:
current_max_number = number
print current_max_number
def max_int_in_list():
print "Here"
我不确定max_int_in_list应该放在哪里。它需要恰好1个参数。
打印列表中最大数的索引。
numbers = [1,2,3,4,5,6,9]
N = 0
for num in range(len(numbers)) :
if numbers[num] > N :
N = numbers[num]
print(numbers.index(N))
我也会将这个作为参考。你可以先排序,然后打印最后一个数字。
nums = [14, 8, 9, 16, 3, 11, 5]
nums.sort()
print("Highest number is: ", nums[-1])
student_scores[1,2,3,4,5,6,7,8,9]
max=student_scores[0]
for n in range(0,len(student_scores)):
if student_scores[n]>=max:
max=student_scores[n]
print(max)
# using for loop to go through all items in the list and assign the biggest value to a variable, which was defined as max.
min=student_scores[0]
for n in range(0,len(student_scores)):
if student_scores[n]<=min:
min=student_scores[n]
print(min)
# using for loop to go through all items in the list and assign the smallest value to a variable, which was defined as min.
注意:上述代码使用for循环来获取最大值和最小值,这种方法在其他编程语言中也可以常见到。然而,在Python中,使用max()和min()函数是获得相同结果最简单的方法。
max = nums[0]
;此外,max
不是最好的变量名。 - pokemax
是选择不当。如果列表中的所有数字都< -1,则初始值-1将失败。我已经相应地编辑了帖子。 - helmbert(int) > None
会引发 TypeError。 - poke