玩转列表 第1关:列表元素的增删改:客人名单的变化

任务描述

本关任务是对一个给定的列表进行增、删、改等操作,并输出变化后的最终列表。列表是由按一定顺序排列的元素组成,其中的元素根据需要可能会发生变化。其中,列表元素的添加、删除或修改等是最常见的操作。
 

下面以一则请客的故事来说明列表元素操作的应用场景:
有个人邀请几个朋友吃饭,初步拟定了一个客人名单列表guests=['Zhang san','Li si','Wang wu','Zhao liu']。后面因为一些临时情况,这个客人名单不断变化:

  • Zhao liu说要带他的朋友Hu qi一起来;

  • Zhang san因临时有事不能来了;

  • Wang wu说由他的弟弟Wang shi代他赴宴。

最终的客人名单列表如下:

['Li si','Wang shi','Zhao liu','Hu qi']

相关知识

Python 为列表类型提供了一系列内置操作,包括append()insert()pop()remove()等函数,能够很方便的处理上述列表元素变化的情况。我们以上述客人名单列表为例介绍这几种列表操作方法。

添加列表元素

Python 提供了append()insert()等函数,实现向一个列表增加新元素的功能。

(1)在列表尾部添加元素
在 Python 中,可以使用append()方法向一个列表的尾部追加一个元素,其基本语法如下:

 
  1. source_list.append(obj)

其中:

  • source_list:待修改的列表;

  • obj:待插入的元素。

例如,要向guests列表尾部增加客人Hu qi,相应的语句为:

 
  1. # 初始化guests列表
  2. guests=['Zhang san','Li si','Wang wu','Zhao liu']
  3. # 向guests列表尾部追加一个名为Hu qi的客人
  4. guests.append('Hu qi')
  5. # 输出新的guests列表
  6. print(guests)

输出结果为:

 
  1. ['Zhang san','Li si','Wang wu','Zhao liu','Hu qi']

(2)在列表指定位置添加元素

Python 也提供了insert()方法,可以在列表任意指定位置插入元素,其基本语法为:

 
  1. source_list.insert(index,obj)

其中:

  • source_list:待修改的列表;

  • index:待插入的位置索引;

  • obj:待插入的元素。

注意:在 Python 中,列表起始元素的位置索引为0。

例如,要向guests列表中Zhang san的后面增加客人Hu qi,则相应的语句为:

 
  1. # 创建并初始化guests列表
  2. guests=['Zhang san','Li si','Wang wu','Zhao liu']
  3. # 向guests列表Zhang san后面增加一个名为Hu qi的客人
  4. guests.insert(1,'Hu qi')
  5. # 输出新的guests列表
  6. print(guests)

输出结果为:

 
  1. ['Zhang san','Hu qi','Li si','Wang wu','Zhao liu']

修改列表元素

Python 中修改列表元素的方法为:直接将列表中要修改的元素索引指出,然后为其指定新值。其基本语法如下:

 
  1. source_list[index] = obj

其中:

  • source_list:待修改的列表;

  • index:待修改元素的位置索引;

  • obj:待元素的新值。

例如,将请客名单guests列表中的Wang wu改为Wang shi,则相应的语句为:

 
  1. # 初始化guests列表
  2. guests=['Zhang san','Li si','Wang wu','Zhao liu']
  3. # 将列表中的`Wang wu`改为`Wang shi`
  4. guests[2] = 'Wang shi'
  5. # 输出新的guests列表
  6. print(guests)

输出结果为:

 
  1. ['Zhang san','Li si','Wang shi','Zhao liu']

删除列表元素

Python 提供了多种不同的方法来实现对列表中元素的删除操作,包括根据元素索引位置或者元素值删除元素的方法。

(1)删除指定位置的元素

del方法

在 Python 中,调用del函数能够删除指定索引位置的元素,其基本语法如下:

 
  1. del source_list[index]

其中:

  • source_list:待修改的列表;

  • index:待删除元素的位置索引。

例如,将请客名单guests列表中的Zhang san删除,则相应的语句为:

 
  1. # 初始化guests列表
  2. guests=['Zhang san','Li si','Wang wu','Zhao liu']
  3. # 将列表中的`Zhang san`删除
  4. del guests[0]
  5. # 输出新的guests列表
  6. print(guests)

输出结果为:

 
  1. ['Li si','Wang wu','Zhao liu']

pop方法

Python 还提供了pop()方法来删除元素,该方法将从源列表删除对应元素,同时返回被删除的元素。其基本语法如下:

 
  1. deleted_obj = source_list.pop(index)

其中:

  • deleted_obj:保存被删除元素的变量,可根据需要自由命名;

  • source_list:待修改的列表;

  • index:待删除元素的位置索引。

注意:index参数为可选项,不填则默认删除列表末尾的元素。

例如,将请客名单guests列表中的Zhang san删除,则相应的语句为:

 
  1. # 初始化guests列表
  2. guests=['Zhang san','Li si','Wang wu','Zhao liu']
  3. # 将列表中的`Zhang san`删除
  4. deleted_obj = guests.pop(0)
  5. # 输出被删除的元素以及删除后的guests列表
  6. print(deleted_obj)
  7. print(guests)

输出结果为:

 
  1. Zhang san
  2. ['Li si','Wang wu','Zhao liu']

(2)删除指定值对应的元素

有些时候我们并不知道要删除元素的位置索引,怎么办呢?别着急,Python 还提供了remove()方法,可以直接通过元素值来删除对应的元素。其基本语法如下:

 
  1. source_list.remove(obj)

其中:

  • source_list:待修改的列表;

  • obj:待删除元素的值。

注意:如果列表中有多个值为obj的元素,remove仅删除位置索引最靠前的那个元素。

例如,将请客名单guests列表中的Zhang san删除,则相应的语句为:

 
  1. # 初始化guests列表,列表中有多个名为Zhang san的客人
  2. guests=['Zhang san','Li si','Wang wu','Zhao liu','Zhang san']
  3. # 将列表中的`Zhang san`删除
  4. guests.remove('Zhang san')
  5. # 输出新的guests列表
  6. print(guests)

输出结果为:

 
  1. ['Li si','Wang wu','Zhao liu','Zhang san']

如果您想了解更多有关列表操作的相关知识,请参考:【美】 Eric Matthes 著《 Python 编程——从入门到实践》第三章。

编程要求

本关的编程任务是补全src/Step1/guests.py文件的代码,实现相应的功能。具体要求如下:

  • step 1:将guests列表末尾的元素删除,并将这个被删除的元素值保存到deleted_guest变量;

  • step 2:将deleted_guest插入到 step 1 删除后的guests列表索引位置为2的地方;

  • step 3:将 step 2 处理后的guests列表索引位置为1的元素删除;

  • 打印输出 step 1 的deleted_guest变量;

  • 打印输出 step 3 改变后的guests列表。

本关涉及的代码文件src/Step1/guests.py的代码框架如下:

 
  1. # coding=utf-8
  2. # 创建并初始化Guests列表
  3. guests = []
  4. while True:
  5. try:
  6. guest = input()
  7. guests.append(guest)
  8. except:
  9. break
  10. # 请在此添加代码,对guests列表进行插入、删除等操作
  11. ########## Begin ##########
  12. ########## End ##########

测试说明

本关的测试文件是src/Step1/guests.py,测试过程如下:

  1. 平台自动编译并运行guests.py,并以标准输入方式提供测试输入;

  2. 平台获取程序输出,并将其输出与预期输出对比。如果一致则测试通过,否则测试失败。

以下是平台对src/Step1/guests.py的样例测试集:

测试输入:

 
  1. zhang san
  2. li si
  3. wang wu
  4. tan qi
  5. hu ba

预期输出:

 
  1. hu ba
  2. ['zhang san', 'hu ba', 'wang wu', 'tan qi']

开始你的任务吧,祝你成功!

# coding=utf-8

# 创建并初始化Guests列表
guests = []
while True:
    try:
        guest = input()
        guests.append(guest)
    except:
        break

    
# 请在此添加代码,对guests列表进行插入、删除等操作
########## Begin ##########
a=guests.pop()
guests.insert(2,a)
guests.pop(1)
print(a)
print(guests)
 
########## End ##########

  • 2
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 第一列表元素增删客人名单变化 对于列表元素的增加,可以使用 append() 方法将元素添加到列表的末尾。 对于列表元素的删除,可以使用 remove() 方法删除指定的元素,或者使用 del 语句删除指定索引的元素。 对于列表元素的修,可以通过直接赋值的方式修指定索引的元素。 例如: guests = ['Tom', 'Jerry', 'Mike'] guests.append('Lucy') # guests 现在为 ['Tom', 'Jerry', 'Mike', 'Lucy'] guests.remove('Mike') # guests 现在为 ['Tom', 'Jerry', 'Lucy'] guests[1] = 'John' # guests 现在为 ['Tom', 'John', 'Lucy'] ### 回答2: 在现实生活中,我们经常需要处理客人名单变化,例如添加新客人、删除已有客人或者修客人信息。类比这种实际情境,我们可以通过列表元素增删操作来模拟客人名单变化列表元素的增加可以通过向列表中添加新元素来实现。在客人名单中,我们可以通过输入客人的姓名、电话号码等信息来增加客人。例如,我们可以在列表的末尾添加一个新客人的信息,这个新客人的信息将成为列表的最后一个元素。 列表元素的删除可以通过从列表中删除某个元素来实现。在客人名单中,我们可以通过删除已有客人的信息来减少客人数量。例如,如果某个客人已经离开或者取消了预订,我们可以将该客人的信息从列表中删除。另外,也可以通过输入客人的姓名或其他信息来进行查找和删除。 列表元素的修可以通过修列表中某个元素的值来实现。在客人名单中,我们可以通过修客人的信息来调整客人名单。例如,如果客人了电话号码或是房间要求,我们可以修客人的信息,而不是删除该客人再重新添加。 总的来说,通过列表元素增删操作,我们可以轻松模拟客人名单变化。在实际应用中,只要我们熟练掌握相操作方法,就可以方便地处理各种客人名单变化。 ### 回答3: 客人名单变化是一个需要使用列表元素增删的例子。比如说,假设我们在一个餐厅工作,需要维护客人名单。这个名单是一个列表,里面包含每个客人的姓名、电话、桌号等信息。 现在,客人的情况发生了一些变化。有些客人已经完成了就餐,需要从名单中删除;有些客人还没有来到,需要添加到名单中;还有一些客人需要更新他们的信息,比如电话号码或桌号。 首先,我们需要删除已经就餐的客人。我们可以使用列表的remove方法来实现这个操作。假设要删除一个名叫“张三”的客人,代码可以写成这样: ``` customer_list.remove("张三") ``` 这个代码会在列表中找到第一个与“张三”相等的元素,并将其从列表中删除。 接下来,我们需要添加新客人名单中。这可以通过列表的append方法来实现。假设要添加一个名叫“李四”的客人,代码可以写成这样: ``` customer_list.append("李四") ``` 这个代码将“李四”添加到列表的末尾。 最后,我们需要更新客人的信息。这可以使用列表的索引来实现。假设我们需要更新“王五”的电话号码,代码可以写成这样: ``` index = customer_list.index("王五") # 找到“王五”的索引 customer_list[index] = {"name": "王五", "phone": "123456789", "table": 8} # 更新信息 ``` 这个代码首先使用index方法找到“王五”的索引,然后使用索引来修元素。注意,这里我们修的是一个字典,而不是一个简单的字符串。这是因为客人信息有多个字段,需要使用一个结构化的数据类型来表示。 综上所述,通过使用列表元素增删操作,我们可以很方便地维护客人名单。这些操作可以应用于任何类似的列表,比如购物清单、任务列表等等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值