当前位置:首页 >> 脚本专栏

Python 列表中的修改、添加和删除元素的实现

本文介绍的是列表中的修改、添加和删除元素。第一次写博客,如果本文有什么错误,还请大家评论指正。谢谢!
创建的列表大多数都将是动态的,这就意味着列表创建后,将随着程序的运行删减元素。

修改列表元素

修改元素的的语法与访问列表的语法类似。
假设有一个列表motorcycles,其中第一个元素为'honda',修改第一个元素的值

motorcycles = ['honda','yamaha','suzuki']
print(motorcycles)
motorcycles[0] = 'ducati' 
print(motorcycles)

['honda', 'yamaha', 'suzuki']
['ducati', 'yamaha', 'suzuki']

列表中第一个元素的值变成了'ducati'

添加列表元素

在列表末尾添加元素

motorcycles = ['honda','yamaha','suzuki']
motorcycles.append('ducati')
print(motorcycles)

['honda', 'yamaha', 'suzuki', 'ducati']

方法append()是将元素'ducati'添加到了列表的末尾,那如果我们想将元素插入到列表元素的中间怎么办?方法insert()解决这个问题。

motorcycles = ['honda','yamaha','suzuki']
motorcycles.insert(1,'ducati')
print(motorcycles)

['honda', 'ducati', 'yamaha', 'suzuki']

元素'ducati'插入在了列表中第二个位置上,这是因为在python程序中,是从0开始计数的,所以'ducati'放在了元素'honda'的后面。

删除列表元素

使用del 语句删除元素

motorcycles = ['honda','yamaha','suzuki']
del motorcycles[1]
print(motorcycles)

['honda', 'suzuki']

删除第二个元素,同理在python程序中,是从0开始计数的,即删除的是'yamaha'

使用 pop()删除元素

pop() 可删除列表中末尾的元素,并让你能够接着使用它。术语弹出(pop)源自这样的类比:列表就像是一个栈,而删除的列表末尾相当于弹出栈顶元素。

motorcycles = ['honda','yamaha','suzuki']
last_owned = motorcycles.pop()
print(last_owned)
print(motorcycles)

suzuki
['honda', 'yamaha']

实际上,我们也可以使用pop()删除任何位置的元素,只需要在括号中指定要删除的元素索引即可。

motorcycles = ['honda','yamaha','suzuki']
last_owned = motorcycles.pop(0)
print(last_owned)

honda

使用remove 语句删除元素

有的时候,我们不知道从列表中删除的位置。如果你只知道要删除元素的值,则可以使用remove()。
例如:我们要从motorcycles列表中删除'ducati'

motorcycles = ['honda','yamaha','suzuki','ducati']
motorcycles.remove('ducati')
print(motorcycles)

['honda', 'yamaha', 'suzuki']

注意:remove()只能删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环判断是否删除了所有这样的值。

练习

# 1.嘉宾名单
# 邀请一些人共进晚餐,人数至少3个,然后使用这个列表打印消息,邀请这些人来与你共进晚餐
guest = ['yege','xiaowang','zhangsan','wangbaoqiang']
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)

Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Zhangsan 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!

# 2.修改嘉宾名单
# 你刚得知有嘉宾无法赴约,因此需要另外邀请一名嘉宾
# 在嘉宾名单的基础上,在程序末尾添加一条print语句,指出哪位嘉宾无法赴约
# 修改嘉宾名单,将无法赴约的嘉宾的姓名替换为新邀请的嘉宾姓名
# 再次打印一系列消息,向名单中的每位嘉宾发出邀请
guest = ['yege','xiaowang','zhangsan','wangbaoqiang']
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
print("#" * 60)
print(guest[2].title() + " 因为有急事,所以不能前来赴约,表示抱歉" + "!" )
del guest[2]
guest.insert(2,'lisi')
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
print(guest)

Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Zhangsan 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!
############################################################
Zhangsan 因为有急事,所以不能前来赴约,表示抱歉!
Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Lisi 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!
['yege', 'xiaowang', 'lisi', 'wangbaoqiang']

# 3.添加嘉宾
# 找到了一个更大的餐桌,可容纳更多的嘉宾,请继续邀请3位嘉宾
# 在前面基础上,在程序末尾添加一条print语句,指出你找到了更大的餐桌
# 使用insert()将一位新嘉宾添加到名单中
# 使用insert()将另一位新嘉宾添加到名单中间
# 使用append()将最后一位新嘉宾添加到名单末尾
# 打印一系列消息,向名单中的每位嘉宾发出邀请
guest = ['yege','xiaowang','zhangsan','wangbaoqiang']
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
print("#" * 60)
print(guest[2].title() + " 因为有急事,所以不能前来赴约,表示抱歉" + "!" )
del guest[2]
guest.insert(2,'lisi')
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
print("#" * 60)
print("告诉大家一个好消息,我找到了一个更大的餐桌!")
guest.insert(0,'laogui')
guest.insert(3,'wangdana')
guest.append('xiaoming')
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[3].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[4].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[5].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[6].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)

Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Zhangsan 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!
############################################################
Zhangsan 因为有急事,所以不能前来赴约,表示抱歉!
Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Lisi 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!
############################################################
告诉大家一个好消息,我找到了一个更大的餐桌!
Laogui 您好,欢迎来我家做客,一起共进晚餐!
Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Wangdana 您好,欢迎来我家做客,一起共进晚餐!
Lisi 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!
Xiaoming 您好,欢迎来我家做客,一起共进晚餐!

# 4.缩减名单
# 得知新购买的餐桌无法及时送达,因此只能邀请两位嘉宾
# 在前面基础上,在程序末尾添加一行代码,打印只能邀请两位嘉宾共进晚餐
# 使用pop()不断地删除名单中的嘉宾,直到有两名嘉宾为止,每次从名单中弹出一位嘉宾时,都打印一条消息,让该嘉宾知悉你很抱歉,无法邀请他来共进晚餐
# 对余下的两位嘉宾中的每一位,都打印一条消息,指出他依然在受邀人之列
# 使用del将最后两位嘉宾从名单中删除,让名单变为空的,打印该名单,核实程序结束时名单确实是空的
guest = ['yege','xiaowang','zhangsan','wangbaoqiang']
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
print("#" * 60)
print(guest[2].title() + " 因为有急事,所以不能前来赴约,表示抱歉" + "!" )
del guest[2]
guest.insert(2,'lisi')
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[-1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
print("#" * 60)
print("告诉大家一个好消息,我找到了一个更大的餐桌!")
guest.insert(0,'laogui')
guest.insert(3,'wangdana')
guest.append('xiaoming')
msg = guest[0].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[1].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[2].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[3].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[4].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[5].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
msg = guest[6].title() + " 您好,欢迎来我家做客,一起共进晚餐" + "!"
print(msg)
print("#" * 60)
print(guest)
print("很抱歉,刚得到消息,新的餐桌无法及时送达,只能邀请两位好友来一起共进晚餐了!")
pop_guest = guest.pop(0)
print(pop_guest.title() + "兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐" + "!")
pop_guest = guest.pop(0)
print(pop_guest.title() + "兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐" + "!")
pop_guest = guest.pop(0)
print(pop_guest.title() + "兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐" + "!")
pop_guest = guest.pop(0)
print(pop_guest.title() + "兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐" + "!")
pop_guest = guest.pop(0)
print(pop_guest.title() + "兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐" + "!")
print(guest[0].title() + "兄,你还在受邀之列中,记得一起共进晚餐哦,等你!")
print(guest[1].title() + "兄,你还在受邀之列中,记得一起共进晚餐哦,等你!")
del guest[0]
del guest[0]
print(guest)

Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Zhangsan 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!
############################################################
Zhangsan 因为有急事,所以不能前来赴约,表示抱歉!
Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Lisi 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!
############################################################
告诉大家一个好消息,我找到了一个更大的餐桌!
Laogui 您好,欢迎来我家做客,一起共进晚餐!
Yege 您好,欢迎来我家做客,一起共进晚餐!
Xiaowang 您好,欢迎来我家做客,一起共进晚餐!
Wangdana 您好,欢迎来我家做客,一起共进晚餐!
Lisi 您好,欢迎来我家做客,一起共进晚餐!
Wangbaoqiang 您好,欢迎来我家做客,一起共进晚餐!
Xiaoming 您好,欢迎来我家做客,一起共进晚餐!
############################################################
['laogui', 'yege', 'xiaowang', 'wangdana', 'lisi', 'wangbaoqiang', 'xiaoming']
很抱歉,刚得到消息,新的餐桌无法及时送达,只能邀请两位好友来一起共进晚餐了!
Laogui兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐!
Yege兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐!
Xiaowang兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐!
Wangdana兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐!
Lisi兄,很抱歉,怪我考虑的不周到,下次我们有机会再一起共进晚餐!
Wangbaoqiang兄,你还在受邀之列中,记得一起共进晚餐哦,等你!
Xiaoming兄,你还在受邀之列中,记得一起共进晚餐哦,等你!
[]