Python小白教学系列 | 列表详解
前言 :
为了方便观看效果,全文将print(xxxxx)和其对应的运行结果放在一起(在源代码中加入的运行结果,将其去掉即为源代码)
一、创建列表
1)什么是列表?
列表形如['saf','sf',5,'李笑男‘],是一个可以储存任意数据类型的集合。
需要注意的是,列表和数组不同,数组是储存统一数据类型的集合。
2)创建列表
zero_li = [] #建立一个空列表
li = [ 'http' , 'ftp' , 5 ] #建立一个有数据的列表
3)列表还能镶嵌
li = ['http', 'ftp', 5, ['http', 5]]
二、列表的用法详解
1)索引
功能:指定获取列表中某一个元素
格式:
列表名称[数字]
示例:
li = ['http', 'ftp', 5 ]
print(li[2])
运行结果:
5
print(li[0]) #0对应列表中第一个元素,依次类推
运行结果:
http
2)切片
功能:指定获取多个元素
格式:
li[:] #li列表中的所有元素
li[1:] #li列表中除了第一个元素的其余元素
li[2:] #li列表中除了前两个元素的其余元素
li[:-1] #li列表除了倒数最后一个元素的其余元素
li[:-2] #li列表除了倒数最后两个元素的其余元素
li[:2] #li列表前两个元素
li[::-1] #li列表中所有元素倒序
示例:
li = ['http', 'ftp', 5, 9, 8]
print(li[:])
运行结果:
['http', 'ftp', 5, 9, 8]
print(li[2:]) #列表li = ['http', 'ftp', 5, 9, 8]
运行结果:
[5, 9, 8]
print(li[:-2]) #列表li = ['http', 'ftp', 5, 9, 8]
运行结果:
['http', 'ftp', 5]
print(li[:2]) #列表li = ['http', 'ftp', 5, 9, 8]
运行结果:
['http', 'ftp']
print(li[::-1]) #列表li = ['http', 'ftp', 5, 9, 8]
运行结果:
[8, 9, 5, 'ftp', 'http']
3)重复
简单来说就是将列表中的数据复制n编追加在列表最后
li = ['http', 'ftp', 5, 9, 8]
print(li * 2)
运行结果:
['http', 'ftp', 5, 9, 8, 'http', 'ftp', 5, 9, 8]
4)连接
将多个列表连接起来
li = ['http', 'ftp', 5, 9, 8]
ll = ['ssh', 'apache']
print(li + ll)
运行结果:
['http', 'ftp', 5, 9, 8, 'ssh', 'apache']
5)成员操作符
检测某某某是否在列表中,有返回值为True,反之为False
li = ['http', 'ftp', 5, 9, 8]
print('http' in li) #运行结果为 True
print(8 in li) #运行结果为 True
print('ssh' in li) #运行结果为 False
6)迭代(for循环)
迭代就是依次将列表中的元素赋值出来使用
li = ['http', '迭代', 5.5, 6]
for i in li:
print(i)
运行结果:
http
迭代
5.5
6
7)在列表里镶嵌列表型
简单来说就是在列表中取出指定元素,只是列表稍加复杂
帮助理解
li = [['http', 80, 8080], ['ssh', 22, 2020]]
第一个[]: [0] [1]
第二个[]:[0] [1] [2] [0] [1] [2]
或: [-3] [-2] [-1] [-3] [-2] [-1]
示例:
li = [['http', 80, 8080], ['ssh', 22, 2020]]
print(li[0][0]) #第一个[]对应最外面的列表,第二个[]对应上一个[]对应的子列表
运行结果为: http
print(li[0][2])
运行结果为: 8080
print(li[1][-1])
运行结果为: 2020
print(li[1][-2])
运行结果为: 22
三、列表增加元素
1、在列表中增加列表
格式:列表.extend(列表)
示例:
li = ['http', '迭代', 5.5, 6]
ll = ['ftp', 'ssh']
li.extend([ll])
print(li)
运行结果:
['http', '迭代', 5.5, 6, ['ftp', 'ssh']]
2、在列表末增加一个元素
格式:列表.append(元素)
示例:
li = ['http', '迭代', 5.5, 6]
li.append('ftp') #li列表添加ftp
print(li)
运行结果:
['http', '迭代', 5.5, 6, 'ftp']
3、在列表末增加多个元素
格式:列表.extend(列表)
示例:
法一:
li = ['http', '迭代', 5.5, 6]
li.extend(['ftp', 'ssh']) #追加'ftp', 'ssh'
print(li)
运行结果:
['http', '迭代', 5.5, 6, 'ftp', 'ssh']
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~代码分割符
法二:
li = ['http', '迭代', 5.5, 6]
ll = ['ftp', 'ssh']
li.extend(ll) #与上一个方法相同
print(li)
运行结果:
['http', '迭代', 5.5, 6, 'ftp', 'ssh']
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~代码分割符
法三:
li = ['http', '迭代', 5.5, 6]
ll = ['ftp', 'ssh']
print(li + ll)
运行结果:
['http', '迭代', 5.5, 6, 'ftp', 'ssh']
4、在指定位置插入元素
格式:列表.insert(索引,元素)
示例:
li = ['http', '迭代', 5.5, 6]
li.insert(1, 'dns') #在索引1处插入字符串dns
print(li)
运行结果:
['http', 'dns', '迭代', 5.5, 6]
四、列表的删除
1、删除最后一个元素
格式:列表.pop()
示例:
li = ['http', '迭代', 5.5,6]
a=li.pop()
print(a)
print(li)
运行结果:
6
['http', '迭代', 5.5]
2、删除指定元素
格式:列表.remove( xxx)
示例:
li = ['http', '迭代', 5.5,6]
li.remove(5.5) #用字符串删除
print(li)
运行结果:
['http', '迭代', 6]
li.remove(li[0]) #用索引值删除
运行结果:
['迭代', 6]
3、删除列表
格式:del 列表
示例:
li = ['http', '迭代', 5.5,6]
print(li)
del li
print(li)
运行结果:
五、修改列表中的元素
1、通过索引,重新赋值
格式:列表[索引] = ‘要赋的值’
示例:
li = ['http', '迭代', 5.5, 6]
li[1] = '通过索引'
print(li)
运行结果:
['http', '通过索引', 5.5, 6]
2、通过切片,重新赋值
替换多个元素时更好用!
格式:列表[切片] = 要加入的列表
示例:
li = ['http', '迭代', 5.5, 6]
print(li[1:2])
li[1:2] = ['通过切片','ssh']
print(li)
运行结果:
['迭代'] #为li[1:2]值
['http', '通过切片', 'ssh', 5.5, 6]
六、查看列表元素和索引
1、查看某元素在列表中的个数
格式:列表.count(元素)
示例:
li=[1,2,4,4,5,5,5]
print(li.count(5))
print(li.count(3))
运行结果:
3
0
2、查看元素的索引值
格式:列表.index(元素)
示例:
li = ['ftp', 'http', 'ssh', 'http', 'ssh']
# 0 1 2 3 4 对应的索引值
print('索引值:' ,li.index('ftp'),'---->ftp')
print('索引值:',li.index('http'),'-----http')
print('索引值:',li.index('ssh'),'-----ssh')
运行结果:
索引值: 0 ---->ftp
索引值: 1 -----http
索引值: 2 -----ssh
七、列表的排序
1、从小到大排序 或 从大到小排序
在此需要引入sort以及sorted,以下是sort和sorted的简单区别
sort: 是应用在 list 上的方法。
sort 方法直接在源列表上更改。
sorted: 可以对所有可迭代的对象进行排序操作。
sorted 方法返回的是一个新的列表,不会更改源列表。
sorted 示例:
li = [1, 2, 7, 4, 9, 5, 3]
New_li = sorted(li)
print('源序列:', li)
print('从小到大排序:', New_li)
print('从大到小排序:', New_li[::-1])
运行结果:
源序列: [1, 2, 7, 4, 9, 5, 3] #源列表不变
从小到大排序: [1, 2, 3, 4, 5, 7, 9]
从大到小排序: [9, 7, 5, 4, 3, 2, 1]
sort 示例:
li = [1, 2, 7, 4, 9, 5, 3]
li.sort()
print('源序列:', li)
print('从小到大排序:', li)
print('从大到小排序:', li[::-1])
运行结果:
源序列: [1, 2, 3, 4, 5, 7, 9] #可以看到源列表被更改
从小到大排序: [1, 2, 3, 4, 5, 7, 9]
从大到小排序: [9, 7, 5, 4, 3, 2, 1]
2、打乱顺序
格式:random.shuffle(列表名)
import random
li = [1, 2, 3, 4, 5, 7, 9]
random.shuffle(li)
print(li)
运行结果:
[7, 9, 2, 3, 1, 5, 4]
还没有评论,来说两句吧...