Python--列表(list)

Python–列表(list)

应用场景

一次性存储多个数据,且可以为不同的数据类型

工作中一个列表中尽可能存储的数据类型相同,因为不同的数据类型,操作方式不同

格式

[数据1,数据2,......]

常用操作

列表的常用操作:增、删、改、查

查找

下标查找

name_list = ['laow','laos','laom']
print(name_list)  # ['laow','laos','laom']
print(name_list[0])  # laow
print(name_list[1])  # laos
print(name_list[2])  # laom

函数查找

index()函数

返回指定数据所在位置的下标

**注意:**查找的内容不存在则报错

语法
列表序列.index(数据,开始位置下标,结束位置下标)  #下标可不写,即查找整个列表

举例

name_list = ['laow','laos','laom']
print(name_list.index('laow',0,2))  # 0
print(name_list.index('laom',0,3))  # 2
count()函数

​ 统计指定数据在当前列表中出现的次数

语法
列表序列.count(数据,开始位置下标,结束位置下标)

举例

name_list = ['laow','laos','laom']
print(name_list.count("laow"))  # 1
len()函数

访问列表长度,即列表中数据的个数

语法
len(列表名称)

举例

name_list = ['laow','laos','laom']
print(len(name_list))  # 3 列表中有3个数据

判断数据是否存在

判断是否存在是一个公共操作,在字符串、列表、元组等都可以使用

in

判断指定数据是否在某个序列,如果在返回True,否则返回False

name_list = ['laow','laos','laom']
print("laow" in name_list)  # True
print("hello" in name_list)  # False

not in

not in 和 in 的判断正好相反

判断指定数据不在在某个序列,如果不在返回True,否则返回False

name_list = ['laow','laos','laom']
print("hello" not in name_list)  # True
print("laow" not in name_list)  # False

为列表增加数据

增加指定数据到列表中

append()函数

在列表结尾追加数据,即修改了原列表,所以列表是可变类型数据

**注意:**如果append()函数追加的数据是一个序列,则追加整个序列到列表

语法
列表序列.append(数据)

举例

list = ["a","b","c"]
list.append([11,22])
print(list)  # ['a', 'b', 'c', [11, 22]]  向列表增加一个序列(整体追加)
list.append(1)  
print(list)  # ['a', 'b', 'c', [11, 22], 1]  向列表增加一个整数

extend()函数

列表尾部追加数据,如果数据是一个序列,则将这个序列的元素逐一添加到列表(序列拆开追加)

语法
列表序列.extend(数据)

举例

list = ["a","b","c"]
list.extend("hello")
print(list)  # ['a', 'b', 'c', 'h', 'e', 'l', 'l', 'o']  将字符串拆开分别添加

list = ["a","b","c"]
list.extend(["hello","world"])
print(list)  # ['a', 'b', 'c', 'hello', 'world']  将列表拆开分别追加

insert()函数

指定位置新增数据

语法
列表序列.insert(位置下标,数据)

举例

list = ["a","b","c"]
list.insert(1,123)
print(list)  3 ['a', 123, 'b', 'c']

列表数据删除

del

删除整个列表,还可以删除指定下标的数据

语法
del 数据 或者 del (数据)

举例

# 删除整个列表
list1 = ["a","b","c"]
del list
print(list1)  # 这里报错,因为list1列表已经删除了
# 删除列表的某个数据
list1 = ["a","b","c"]
del list1[0]
print(list1)  # ['b', 'c']

pop()

删除指定下标的数据,如果不指定下标,默认删除最后一个数据,返回删除的数据

语法
列表序列.pop(删除数据的下标)

举例

# 不指定下标,默认删除最后一个数据
list1 = ["a","b","c"]
de = list1.pop()
print(list1)  # ['a', 'b']
# 删除指定数据
list1 = ["a","b","c"]
de = list1.pop(1)
print(list1)  # ['a', 'c'] 删除b

pop()函数删除的可以使用变量接受

name_list =["王二","小马","小丽","小红","小明"]
name = name_list.pop(2)
print(name)
# 输出结果:
小丽

remove()函数

删除列表中某个数据的第一个匹配项

语法
列表序列.remove(要删除的数据)

举例

list1 = ["a","b","c"]
list1.remove("a")
print(list1)  # ['b', 'c']

clear()函数

清空列表

语法
列表序列.clear()

举例

list1 = ["a","b","c"]
list1.clear()
print(list1)  # []

复制列表

copy()函数

语法
变量名称 = 列表序列.copy()

举例

a = [1,2,3,4]
b = a.copy()
print(b)  # [1,2,3,4]

列表遍历

依次打印列表中的各个数据

while遍历

代码
a = [1,2,3,4]
i = 0
while i < len(a):
    print(a[i],end="\t")
    i += 1  
# 输出结果:
1	2	3	4	

for遍历

代码

推荐使用for循环,简单、代码量少

name_list = ["laow","laol","laom","laos"]
for i in name_list:
    print(i,end="\t")
# 输出结果:
laow	laol	laom	laos

列表排序

sort()函数

sort排序是将list按特定顺序重新排列,默认由小到大

# 正序
a = ["1","6","5","4","8"]
a.sort()
print(a)  # ['1', '4', '5', '6', '8']

# 倒序
a = ["1","6","5","4","8"]
a.sort(reverse=True)
print(a)  # ['8', '6', '5', '4', '1']

reverse()函数

将列表倒序,这里所谓倒序就是将列表颠倒,不会排序

a = ["1","6","5","4","8"]
a.reverse()
print(a)  # ['8', '4', '5', '6', '1']

列表嵌套

所谓列表嵌套就是一个列表里面包含了其他的子列表

应用场景:要存储班级一、二、三三个班级学生姓名,且每个班级的学生姓名在一个表里

name_list = [["小明","小红","小二"],["Tom","Lucy","Rose"],["张三","李四","王五"]]

如何查找到数据“小明”?

# 第一步:安装下标查找到小明所在的列表
print(name_list[0])

# 第二步:从小明所在的列表里,再按照下标找到小明
print(name_list[0][0])

综合应用

场景:有9位老师,分别随机分配到3个不同的办公室

name_list = ["小明","小红","小二","Tom","Lucy","Rose","张三","李四","王五"]
list1 = [[],[],[]]
for name in name_list:
    import random
    num = random.randint(0,2)
    list1[num].append(name)
print(list1)
for nu in list1:
    print(f'每个子列表里边的个数是:{len(nu)},分别是:')
    for i in nu:
        print(i,end="  ")
    print()
# 执行结果:
[['小明', 'Rose', '王五'], ['小红', '张三', '李四'], ['小二', 'Tom', 'Lucy']]
每个子列表里边的个数是:3,分别是:
小明  Rose  王五  
每个子列表里边的个数是:3,分别是:
小红  张三  李四  
每个子列表里边的个数是:3,分别是:
小二  Tom  Lucy
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页