python的学习记录--2、列表

数据类型–列表

定义:由一系列按特定顺序排列的元素组成
也就是说 列表是有序集合

(一)访问列表元素

列表是有序的,每一个元素都自带有一个位置信息,就是索引。索引从0开始
其语法为: 列表[索引号]

list = ['一一','二二','三三','四四']
print(list[1])

结果为

二二

对于列表元素过多的情况,如果想看列表最后一位元素的信息,可通过索引号[-1]来获取。这种约定也适用于其余 负索引。

list = ['一一','二二','三三','四四']
print(list[-1])
print(list[-2])
四四
三三
切片器

概念:列表切片是处理列表的部分元素,也就是吧整个列表切开
语法:[start:end:step]
start: 起始索引,从0开始
end:结束索引,但是end为-1为实际索引值
step:步长。步长为正时,从左向右取值。步长为负值时,反向取值
列表切片器

list = ['一一','二二','三三','四四','五五']
print(list[2:]) #取第三位元素到最后一位
print(list[:3]) #取后三位元素
print(list[1:3]) #取第二位元素到第三位元素
print(list[-4:]) #取最后四位元素
print(list[::2]) #步长为 2 
print(list[::-1]) #反向取值 
print(list[:]) #等价于复制列表

对应结果如下

['三三', '四四', '五五']
['一一', '二二', '三三']
['二二', '三三']
['二二', '三三', '四四', '五五']
['一一', '三三', '五五']
['五五', '四四', '三三', '二二', '一一']
['一一', '二二', '三三', '四四', '五五']

注意:Python中字符串,元组也支持切片器

(二)添加列表元素

添加列表元素就是在指点位置(索引)增加新的值

1、根据索引位置插入元素用到的方法

insert(index,x)
index:是准备插入的索引
x:为需要插入的元素
该方法没有返回值,但会在列表指定位置插入指定对象。

list_1 = ['一一','二二','三三','四四']
list_2 = ['一一','二二','三三','四四']
list_1.insert(0,'五五')
list_2.insert(-1,'六六')
print(f'插入元素后新列表为{list_1}')
print(f'插入元素后新列表为{list_2}')

结果为

插入元素后新列表为['五五', '一一', '二二', '三三', '四四']
插入元素后新列表为['一一', '二二', '三三', '六六', '四四']
2、直接添加到最后一个索引

append(x)

list = ['一一','二二','三三','四四']
list.append('五五')
print(f'插入元素后新列表为{list}')

结果为

插入元素后新列表为['一一', '二二', '三三', '四四', '五五']

(三)修改列表元素

根据索引修改列表元素

list = ['一一','二二','三三','四四']
list[1] = '五五'
print(f'修改后的新列表为{list}')

结果如下

修改后的新列表为['一一', '五五', '三三', '四四']

(四)删除列表元素

1、del 对应索引进行删除
2、pop() 删除列表最后一位元素
3、remove() 删除确定的值

对于有时候,不知道要从列表中删除的值所处的位置。那么只需要知道要删除的元素的值,可使用方法remove()

list_1 = ['一一','二二','三三','四四']
list_2 = ['一一','二二','三三','四四']
list_3 = ['一一','二二','三三','四四']
del list_1[1]
list_2.pop()
list_3.remove('一一')
print(f'del 删除后效果{list_1}')
print(f'pop 删除后效果{list_2}')
print(f'remove 删除后效果{list_3}')
del 删除后效果['一一', '三三', '四四']
pop 删除后效果['一一', '二二', '三三']
remove 删除后效果['二二', '三三', '四四']

其中 pop()可以返回该元素的值

list = ['一一','二二','三三','四四']
a = list.pop()
print(f'删除后的列表{list}')
print(a)
删除后的列表['一一', '二二', '三三']
四四

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

(五)列表排序及其他

1、排序

(1)颠倒顺序–方法reverse()

list = [1,2,3,4,5]
list.reverse()
print(list)
[5, 4, 3, 2, 1]

(2)永久性排序–方法sort()
该方法永久性地修改了列表元素的排列顺序
如果要按与字母顺序相反的顺序排列列表元素,需向sort() 方法传递参数reverse=True

list_1 = [1,5,4,2,3,6]
list_2 = [1,5,4,2,3,6]
list_1.sort() #默认升序
list_2.sort(reverse = True) #降序排序
print(f'升序后列表为{list_1}')
print(f'降序后列表为{list_2}')
升序后列表为[1, 2, 3, 4, 5, 6]
降序后列表为[6, 5, 4, 3, 2, 1]

(3)临时性排序–函数sorted()
sorted并不会真正的改变原列表的顺序,并且可以赋值给一个新的列表
同样的sorted也接受reverse=True

list_1 = [1,5,4,2,3,6]
list_2 = sorted(list_1) #默认升序
list_3 = sorted(list_1, reverse = True) #降序排序
print(f'原列表为{list_1}')
print(f'升序后列表为{list_2}')
print(f'降序后列表{list_3}')
原列表为[1, 5, 4, 2, 3, 6]
升序后列表为[1, 2, 3, 4, 5, 6]
降序后列表[6, 5, 4, 3, 2, 1]

2、其他函数或方法

(1)函数len()
统计元素个数
(2)方法copy()
复制列表
(3)方法count()
统计某个元素在列表中出现的次数
(4)方法index()
从列表中找出某个值第一个匹配项的索引位置
(5)方法join()
用于将序列中的元素以指定的字符连接生成一个新的字符串。比如

a = ['a','b','c']
print('-'.join(a))

结果为

a-b-c

(6)in 跟not in
(7)方法extend()
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

a = ['a','b','c']
b = ['d','f','e']
a.extend(b)
print(a)

结果如下

['a', 'b', 'c', 'd', 'f', 'e']
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值