«

🧠 Python 学习笔记:列表统计函数练习整理(入门必练)

熊猫老师 发布于 阅读:17


在学习 Python 的过程中,列表(list)是最常用的数据结构之一。本篇记录一些基础但非常重要的练习,包括:

这些练习的核心思想只有一个:👉 遍历列表(for 循环)


📌 一、求和(sum)

def sum_nums(nums):
    """
    计算列表中所有元素的总和
    """
    total = 0
    for i in nums:
        total = total + i
    return total

print(sum_nums([23, 23, 23, 45, 23]))

💡 思路


📌 二、求最大值(max)

def max_nums(nums):
    """
    返回列表中的最大值
    """
    max_num = nums[0]  # 假设第一个元素最大

    for i in nums:
        if i > max_num:
            max_num = i

    return max_num

print(max_nums([23, 23, 423, 32]))

💡 思路


📌 三、求最小值(min)

def min_nums(nums):
    """
    返回列表中的最小值
    """
    min_num = nums[0]

    for i in nums:
        if i < min_num:
            min_num = i

    return min_num

print(min_nums([27, 29, 23, 43]))

📌 四、求平均值(avg)

def avg(nums):
    """
    计算列表平均值
    """
    total = 0

    for i in nums:
        total = total + i

    average = total / len(nums)
    return average

print(avg([27, 29, 23, 43]))

💡 公式

平均值 = 总和 / 个数


📌 五、统计 max / min / avg(基础写法)

def sats(nums):
    """
    同时返回最大值、最小值、平均值(多次遍历)
    """
    # 最大值
    max_num = nums[0]
    for i in nums:
        if i > max_num:
            max_num = i

    # 最小值
    min_num = nums[0]
    for i in nums:
        if i < min_num:
            min_num = i

    # 平均值
    total = 0
    for i in nums:
        total = total + i

    avg = total / len(nums)

    return max_num, min_num, avg

print(sats([23, 54, 28, 23]))

📌 六、统计 max / min / avg(优化写法 ⭐)

def stats(nums):
    """
    同时返回最大值、最小值、平均值(一次遍历完成)
    """
    max_num = nums[0]
    min_num = nums[0]
    total = 0

    for i in nums:
        if i > max_num:
            max_num = i
        if i < min_num:
            min_num = i
        total = total + i

    avg = total / len(nums)

    return max_num, min_num, avg

print(stats([27, 29, 23, 43]))

🚀 优点


📌 七、统计大于某个值的个数

def count_greater(nums, x):
    """
    统计大于 x 的元素个数
    """
    count = 0

    for i in nums:
        if i > x:
            count = count + 1

    return count

print(count_greater([23, 54, 23], 10))

📌 八、统计区间内元素个数

def count_between(nums, a, b):
    """
    统计区间 [a, b] 内的元素个数(包含边界)
    """
    count = 0

    for i in nums:
        if a <= i <= b:
            count = count + 1

    return count

print(count_between([23, 25, 43, 64], 23, 40))

📌 九、找出区间内的元素

def find_between(nums, a, b):
    """
    找出区间 (a, b) 内的所有元素(不包含边界)
    """
    result = []

    for i in nums:
        if a < i < b:
            result.append(i)

    return result

print(find_between([23, 24, 32, 35], 22, 30))

💡 区别

函数 返回
count_between 个数
find_between 元素列表

📌 十、查找最大值下标

def find_max_idx(nums):
    """
    返回最大值所在的索引(下标)
    """
    max_val = nums[0]
    max_idx = 0

    for i in range(len(nums)):
        if nums[i] > max_val:
            max_val = nums[i]
            max_idx = i

    return max_idx

print(find_max_idx([23, 25, 534]))

📌 十一、查找最小值下标

def find_min_idx(nums):
    """
    返回最小值所在的索引(下标)
    """
    min_val = nums[0]
    min_idx = 0

    for i in range(1, len(nums)):
        if nums[i] < min_val:
            min_val = nums[i]
            min_idx = i

    return min_idx

print(find_min_idx([23, 25, 534]))

📦 完整代码(可直接运行)

def sum_nums(nums):
    total = 0
    for i in nums:
        total += i
    return total

def max_nums(nums):
    max_num = nums[0]
    for i in nums:
        if i > max_num:
            max_num = i
    return max_num

def min_nums(nums):
    min_num = nums[0]
    for i in nums:
        if i < min_num:
            min_num = i
    return min_num

def avg(nums):
    total = 0
    for i in nums:
        total += i
    return total / len(nums)

def stats(nums):
    max_num = nums[0]
    min_num = nums[0]
    total = 0

    for i in nums:
        if i > max_num:
            max_num = i
        if i < min_num:
            min_num = i
        total += i

    return max_num, min_num, total / len(nums)

def count_greater(nums, x):
    count = 0
    for i in nums:
        if i > x:
            count += 1
    return count

def count_between(nums, a, b):
    count = 0
    for i in nums:
        if a <= i <= b:
            count += 1
    return count

def find_between(nums, a, b):
    result = []
    for i in nums:
        if a < i < b:
            result.append(i)
    return result

def find_max_idx(nums):
    max_val = nums[0]
    max_idx = 0

    for i in range(len(nums)):
        if nums[i] > max_val:
            max_val = nums[i]
            max_idx = i

    return max_idx

def find_min_idx(nums):
    min_val = nums[0]
    min_idx = 0

    for i in range(1, len(nums)):
        if nums[i] < min_val:
            min_val = nums[i]
            min_idx = i

    return min_idx

🧾 学习总结

通过这些练习,我掌握了:

👉 这些都是后续学习算法和数据结构的基础。