python中列表的用法

列表(List)是Python中常用的数据类型之一,它是一种有序的可变序列,可以存储多个元素。与元组(Tuple)相比,列表有一些不同的用法和特点:

  1. 可变性:列表是可变的,这意味着你可以在列表创建后修改、添加或删除其中的元素。而元组是不可变的,一旦创建就不能修改。

  2. 定义方式:列表使用方括号 [] 来定义,元素之间用逗号 , 分隔。例如:my_list = [1, 2, 3, 4, 5]

  3. 方法和操作:由于列表是可变的,它提供了一系列用于修改和操作列表的方法,如添加元素(append()insert())、删除元素(remove()pop()del)、列表合并(extend()+)等。

  4. 性能:由于列表是可变的,当需要频繁地进行插入、删除等操作时,列表通常比元组更加高效。而对于需要保持不变性和不需要频繁操作的数据,元组可能更适合。

  5. 适用场景:列表适用于需要频繁修改和操作数据的情况,比如动态收集一系列数据、维护用户列表等。元组适用于不希望数据被修改的情况,例如在函数返回多个值时可以使用元组来确保数据的不可变性。

下面是一些列表常用操作的示例:

# 创建一个列表
my_list = [1, 2, 3, 4, 5]

# 添加元素到列表末尾
my_list.append(6)  # 现在 my_list 为 [1, 2, 3, 4, 5, 6]

# 在指定位置插入元素
my_list.insert(2, 7)  # 在索引为2的位置插入7,现在 my_list 为 [1, 2, 7, 3, 4, 5, 6]

# 删除指定元素
my_list.remove(3)  # 删除元素3,现在 my_list 为 [1, 2, 7, 4, 5, 6]

# 弹出指定索引位置的元素
popped_element = my_list.pop(1)  # 弹出索引为1的元素,现在 my_list 为 [1, 7, 4, 5, 6],popped_element为2

# 列表合并
another_list = [8, 9, 10]
merged_list = my_list + another_list  # 现在 merged_list 为 [1, 7, 4, 5, 6, 8, 9, 10]

需要根据实际需求来选择使用列表还是元组。如果数据需要频繁修改或操作,可以选择使用列表。如果数据应该保持不变性,可以使用元组。

当涉及到动态收集一系列数据或需要频繁修改数据时,使用列表是比较合适的。下面是一些具体的例子,展示了列表的用法:

例子 1:动态收集用户输入

# 创建一个空列表,用于收集用户输入的数字
numbers = []

# 循环收集用户输入的数字,直到用户输入 "done"
while True:
    user_input = input("请输入一个数字(输入 'done' 结束):")
    if user_input.lower() == 'done':
        break
    try:
        number = int(user_input)  # 尝试将用户输入的内容转换为整数
        numbers.append(number)    # 将转换后的数字添加到列表中
    except ValueError:           # 如果转换失败(输入不是有效的数字)
        print("请输入有效的数字!")

# 打印收集到的数字列表
print("收集到的数字列表:", numbers)

解释:

  1. 我们首先创建一个名为 numbers 的空列表,用于存储用户输入的数字。
  2. 进入无限循环,直到用户输入 "done",我们将不断收集用户输入的数字。
  3. 在循环中,使用 input() 函数接收用户输入,并存储在 user_input 变量中。
  4. 如果用户输入 "done"(不区分大小写),我们使用 break 语句退出循环,完成数据收集。
  5. 如果用户输入的是一个数字(可以通过 int() 尝试将其转换为整数),则将其添加到 numbers 列表中。
  6. 如果用户输入的不是一个有效的数字(转换失败),我们将捕获 ValueError 异常,并提示用户输入有效的数字。
  7. 循环结束后,我们通过 print() 函数将收集到的数字列表输出到控制台。

例子 2:维护一个待办事项列表

# 创建一个空列表,用于存储待办事项
todos = []

while True:
    action = input("请输入要做的操作(add/done/quit):")

    if action == "add":
        todo = input("请输入待办事项:")
        todos.append(todo)
        print("待办事项已添加!")

    elif action == "done":
        if not todos:
            print("当前没有待办事项!")
        else:
            print("完成的待办事项:", todos.pop(0))

    elif action == "quit":
        print("退出程序。")
        break

    else:
        print("无效的操作,请重新输入!")

解释:

  1. 我们首先创建一个名为 todos 的空列表,用于存储待办事项。
  2. 进入无限循环,直到用户输入 "quit",我们将持续与用户交互处理待办事项。
  3. 在每次循环中,使用 input() 函数接收用户输入,并将其存储在 action 变量中,表示用户要执行的操作。
  4. 如果用户输入 "add",则要求用户输入待办事项,并将其添加到 todos 列表中。
  5. 如果用户输入 "done",则检查 todos 列表是否为空。如果不为空,则从列表的开头取出一个待办事项,并打印出来表示已完成。
  6. 如果用户输入 "quit",则使用 break 语句退出循环,程序结束。
  7. 如果用户输入了其他无效的操作,我们会给出提示信息。
  8. 循环会继续进行,直到用户选择退出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李解49

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值