自学内容网 自学内容网

Python “列表” 水平考试:20道精选试题和答案

Python “列表” 水平考试:20道精选试题和答案

【 列表 】


一、选择题(每题 2 分,共 10 题)

  1. 以下哪个选项可以创建一个包含 5 个元素的全零列表?

    • A. list(5)
    • B. [0] * 5
    • C. [0 for i in range(6)]
    • D. zeros(5)

    答案:B

  2. 以下代码的输出是什么?

    numbers = [1, 2, 3, 4, 5]
    print(numbers[1:4])
    
    • A. [1, 2, 3]
    • B. [2, 3, 4]
    • C. [1, 2, 3, 4]
    • D. [2, 3, 4, 5]

    答案:B

  3. 以下代码的输出是什么?

    fruits = ["apple", "banana", "cherry"]
    fruits.append("orange")
    print(len(fruits))
    
    • A. 3
    • B. 4
    • C. 5
    • D. 6

    答案:B

  4. 以下代码的输出是什么?

    numbers = [1, 2, 3, 4, 5]
    numbers[2] = 10
    print(numbers)
    
    • A. [1, 2, 10, 4, 5]
    • B. [1, 10, 3, 4, 5]
    • C. [1, 2, 3, 4, 5]
    • D. [10, 2, 3, 4, 5]

    答案:A

  5. 以下代码的输出是什么?

    matrix = [[1, 2], [3, 4], [5, 6]]
    print(matrix[1][0])
    
    • A. 1
    • B. 2
    • C. 3
    • D. 4

    答案:C

  6. 以下代码的输出是什么?

    numbers = [1, 2, 3, 4, 5]
    result = [x * 2 for x in numbers if x % 2 == 0]
    print(result)
    
    • A. [2, 4, 6, 8, 10]
    • B. [4, 8]
    • C. [2, 6, 10]
    • D. [4]

    答案:B

  7. 以下代码的输出是什么?

    fruits = ["apple", "banana", "cherry"]
    fruits.insert(1, "orange")
    print(fruits)
    
    • A. ["apple", "orange", "banana", "cherry"]
    • B. ["orange", "apple", "banana", "cherry"]
    • C. ["apple", "banana", "orange", "cherry"]
    • D. ["apple", "banana", "cherry", "orange"]

    答案:A

  8. 以下代码的输出是什么?

    numbers = [1, 2, 3, 4, 5]
    numbers.pop(2)
    print(numbers)
    
    • A. [1, 2, 4, 5]
    • B. [1, 3, 4, 5]
    • C. [1, 2, 3, 5]
    • D. [2, 3, 4, 5]

    答案:A

  9. 以下代码的输出是什么?

    lst = [1, 2, 3]
    lst.extend([4, 5])
    print(lst)
    
    • A. [1, 2, 3, [4, 5]]
    • B. [1, 2, 3, 4, 5]
    • C. [1, 2, 3]
    • D. [4, 5]

    答案:B

  10. 以下代码的输出是什么?

    lst = [1, 2, 3, 4, 5]
    lst.reverse()
    print(lst)
    
    • A. [5, 4, 3, 2, 1]
    • B. [1, 2, 3, 4, 5]
    • C. [1, 5, 2, 4, 3]
    • D. [5, 1, 4, 2, 3]

    答案:A


二、填空题(每题 3 分,共 5 题)

  1. 以下代码的输出是什么?

    lst = [1, 2, 3, 4, 5]
    print(lst[-2])
    

    答案:4

  2. 以下代码的输出是什么?

    lst = [1, 2, 3]
    lst[1:2] = [10, 20]
    print(lst)
    

    答案:[1, 10, 20, 3]

  3. 以下代码的输出是什么?

    lst = [1, 2, 3, 4, 5]
    print(lst[::2])
    

    答案:[1, 3, 5]

  4. 以下代码的输出是什么?

    lst = [1, 2, 3]
    lst.append([4, 5])
    print(lst)
    

    答案:[1, 2, 3, [4, 5]]

  5. 以下代码的输出是什么?

    lst = [1, 2, 3]
    lst += [4, 5]
    print(lst)
    

    答案:[1, 2, 3, 4, 5]


三、编程题(每题 10 分,共 5 题)

  1. 编写一个函数 remove_duplicates,接受一个列表作为参数,返回一个去重后的新列表。

    def remove_duplicates(lst):
        return list(set(lst))
    
    # 测试
    print(remove_duplicates([1, 2, 2, 3, 4, 4, 5]))  # 输出: [1, 2, 3, 4, 5]
    
  2. 编写一个函数 flatten_list,接受一个嵌套列表作为参数,返回一个扁平化的列表。

    def flatten_list(nested_lst):
        flat_lst = []
        for item in nested_lst:
            if isinstance(item, list):
                flat_lst.extend(flatten_list(item))
            else:
                flat_lst.append(item)
        return flat_lst
    
    # 测试
    print(flatten_list([1, [2, [3, 4], 5], 6]))  # 输出: [1, 2, 3, 4, 5, 6]
    
  3. 编写一个函数 rotate_list,接受一个列表和一个整数 k 作为参数,返回将列表向右旋转 k 步后的新列表。

    def rotate_list(lst, k):
        k = k % len(lst)  # 处理 k 大于列表长度的情况
        return lst[-k:] + lst[:-k]
    
    # 测试
    print(rotate_list([1, 2, 3, 4, 5], 2))  # 输出: [4, 5, 1, 2, 3]
    
  4. 编写一个函数 find_common_elements,接受两个列表作为参数,返回两个列表中共同存在的元素。

    def find_common_elements(lst1, lst2):
        return list(set(lst1) & set(lst2))
    
    # 测试
    print(find_common_elements([1, 2, 3, 4], [3, 4, 5, 6]))  # 输出: [3, 4]
    
  5. 编写一个函数 split_list,接受一个列表和一个整数 n 作为参数,返回将列表分成 n 个子列表的结果。

    def split_list(lst, n):
        k, m = divmod(len(lst), n)
        return [lst[i * k + min(i, m):(i + 1) * k + min(i + 1, m)] for i in range(n)]
    
    # 测试
    print(split_list([1, 2, 3, 4, 5, 6, 7], 3))  # 输出: [[1, 2, 3], [4, 5], [6, 7]]
    

四、附加题(15 分)

编写一个函数 find_max_subarray,接受一个整数列表作为参数,返回列表中连续子数组的最大和。

def find_max_subarray(lst):
    max_sum = current_sum = lst[0]
    for num in lst[1:]:
        current_sum = max(num, current_sum + num)
        max_sum = max(max_sum, current_sum)
    return max_sum

# 测试
print(find_max_subarray([-2, 1, -3, 4, -1, 2, 1, -5, 4]))  # 输出: 6

评分标准

  1. 选择题:每题 2 分,共 20 分。
  2. 填空题:每题 3 分,共 15 分。
  3. 编程题:每题 10 分,共 50 分。
    • 代码正确且功能完整:10 分。
    • 代码部分正确或功能不完整:5 分。
    • 代码错误或未完成:0 分。
  4. 附加题:15 分。
    • 代码正确且功能完整:15 分。
    • 代码部分正确或功能不完整:5 分。
    • 代码错误或未完成:0 分。

总结

本试卷涵盖了列表的基本操作、高级用法和编程实践,适合巩固 Python 列表的学习效果。通过完成这些题目,可以加深对列表的理解并提升编程能力。


原文地址:https://blog.csdn.net/weixin_47267103/article/details/145255759

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!