从0.1开始学Python——[6]


列表在编写程序以及差错中十分重要,因此开继续学习列表的其他操作,如修改,遍历等等。

修改列表

修改元素

list1 = 是修改列表,list1[索引] = 则是修改列表的元素

list1 = ['暗影之拳', '虚空行者', '解脱者', '沙漠皇帝', '机械先驱']
list1[0] = '离群之刺'
print(list1)
['离群之刺', '虚空行者', '解脱者', '沙漠皇帝', '机械先驱']

del list1[索引]用来删除相应索引的元素。也可以用del list1[::步长]这样切片的方式删。

del list1[3]
print(list1)
del list1[3] 
print(list1)
['离群之刺', '虚空行者', '解脱者', '机械先驱']
['离群之刺', '虚空行者', '解脱者']

当然可以看出删完以后后面的元素正向索引会变的。

用切片的方式修改

语法是list1[a:b] = 序列,注意,数值就不是序列,所以不行。你写的序列无论有多少个,都只有a到b-1索引的被替换成这么多个新的,也就是说数量可以不对等。其中list1[0:0]是在索引0处插入新元素。只有设定了步长之后,list1[a:b:c] = 序列,这个时候才需要步长数出来的元素数和插入序列的元素数对等。用list1[a:b] = 空序列的方式也可以实现删除的效果。

list1[1:3] = ['诺克萨斯统领', '不屈之枪', '复仇焰魂']
print(list1)
['离群之刺', '诺克萨斯统领', '不屈之枪', '复仇焰魂']
list1[::2] = ['正义巨像', '皎月女神']  # 多填一个就会报错
print(list1)
['正义巨像', '诺克萨斯统领', '皎月女神', '复仇焰魂']

注意,以上操作只有列表这样的可变序列能用,字符串这样的不可变序列就不行。除非类型转换:用list()函数。

a = '潮汐海灵'
print(list(a))
['潮', '汐', '海', '灵']

用方法修改列表

.append()是解决上面list1[索引]中索引超出上限问题的添加元素的方法,因为上面的方法不能输入比最大索引大的数

list1 = ['齐天大圣', '铁铠冥魂', '腕豪', '暗裔剑魔', '诺克萨斯之手']
list1.append('狂战士')
print(list1)
['齐天大圣', '铁铠冥魂', '腕豪', '暗裔剑魔', '诺克萨斯之手', '狂战士']

.insert(索引,元素)向,某位置插入一个元素。

list1.insert(2, '正义天使')
print(list1)
['齐天大圣', '铁铠冥魂', '正义天使', '腕豪', '暗裔剑魔', '诺克萨斯之手', '狂战士']

.extend()用来拿新的序列来扩充当前序列。

list1.extend(['放逐之刃', '无双剑姬', '刀锋舞者'])
print(list1)
['齐天大圣', '铁铠冥魂', '正义天使', '腕豪', '暗裔剑魔', '诺克萨斯之手', '狂战士', '放逐之刃', '无双剑姬', '刀锋舞者']

.clear()用来清空可变序列

list1.clear()
print(list1)
[]

.pop(索引)可以删除相应索引的元素,同时返回被删元素,这是和del的不同。不填默认删最后一个

# 先撤销回clear之前的list1:['齐天大圣', '铁铠冥魂', '正义天使', '腕豪', '暗裔剑魔', '诺克萨斯之手', '狂战士', '放逐之刃', '无双剑姬', '刀锋舞者']
a = list1.pop(9)
print(list1)
print(a)
['齐天大圣', '铁铠冥魂', '正义天使', '腕豪', '暗裔剑魔', '诺克萨斯之手', '狂战士', '放逐之刃', '无双剑姬']
刀锋舞者

.remove()是根据元素的值删。有相同元素则只删第一个

list1.remove('放逐之刃')
print(list1)
['齐天大圣', '铁铠冥魂', '正义天使', '腕豪', '暗裔剑魔', '诺克萨斯之手', '狂战士', '无双剑姬']

.reverse()用来反转列表。

list1.reverse()
print(list1)
['无双剑姬', '狂战士', '诺克萨斯之手', '暗裔剑魔', '腕豪', '正义天使', '铁铠冥魂', '齐天大圣']

.sort()对列表的元素排序。默认升序排列,降序加一个reverse=True就行,就是正排序再反转。

list2 = [11,2,31,77,5,19]
list2.sort()
print(list2)
[2, 5, 11, 19, 31, 77]

遍历列表

遍历列表在程序中非常常用,简单说就是取出所有元素

while循环遍历

简单明了,有几个元素,len就是几,挨个输出就行。

i = 0
while i < len(list1):
    print(list1[i])
    i += 1
无双剑姬
狂战士
诺克萨斯之手
暗裔剑魔
腕豪
正义天使
铁铠冥魂
齐天大圣

for循环遍历

之前没讲,现在将for循环。语法:
for 变量 in 序列:
(缩进)代码块

会执行元素个数次,变量和序列无关,是自己设的一个量,如上面的i,执行过程中,每执行一次,它会按顺序把元素赋值给变量

for i in list1:
    print(i)
无双剑姬
狂战士
诺克萨斯之手
暗裔剑魔
腕豪
正义天使
铁铠冥魂
齐天大圣

不难看出for更简便,所以用的更多。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值