find the maximum number in a list using a loop

2019-02-10 18:46发布

问题:

So I have this list and variables:

nums = [14, 8, 9, 16, 3, 11, 5]

big = nums[0]

spot = 0

I'm confused on how to actually do it. Please help! I'm new to Python and I want to use this exercise to give me a starter. I want to start with "repeat length of list" like in Scratch or BYOB, but how do I do that on Python?

回答1:

Usually, you could just use

max(nums)

If you explicitly want to use a loop, try:

max_value = None
for n in nums:
    if n > max_value: max_value = n


回答2:

nums = [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


回答3:

Here you go...

nums = [14, 8, 9, 16, 3, 11, 5]

big = max(nums)
spot = nums.index(big)

This would be the Pythonic way of achieving this. If you want to use a loop, then loop with the current max value and check if each element is larger, and if so, assign to the current max.



回答4:

Why not simply using the built-in max() function:

>>> m = max(nums)

By the way, some answers to similar questions might be useful:

  • Pythonic way to find maximum value and its index in a list?
  • How to find all positions of the maximum value in a list?


回答5:

To address your second question, you can use a for loop:

for i in range(len(list)):
    # do whatever

You should note that range() can have 3 arguments: start, end, and step. Start is what number to start with (if not supplied, it is 0); start is inclusive.. End is where to end at (this has to be give); end is exclusive: if you do range(100), it will give you 0-99. Step is also optional, it means what interval to use. If step is not provided, it will be 1. For example:

>>> 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

Since end is exclusive, to include 100, we could do:

>>> 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


回答6:

Python already has built in function for this kind of requirement.

list = [3,8,2,9]
max_number = max(list)
print max_number # it will print 9 as big number

however if you find the max number with the classic vay you can use loops.

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


回答7:

scores = [12, 13, 14, 15, 16, 17, 18, 19, 21, 22, 23, 24, 25, 26, 27,
          28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 31, 31, 37,
          56, 75, 23, 565]

# initialize highest to zero
highest = 0

for mark in scores:
    if highest < mark:
        highest = mark

print(mark)