Python列表的基本操作

列表的定义

在Python中,列表(list)是一种用于存储一系列有序项目的集合,这些项目可以是不同类型的数据(如整数、浮点数、字符串、甚至是其他列表等),并且列表是可变的,这也就意味着我们可以在列表成功创建后对其进行添加、删除、查找或修改其中的元素。

  1. 空列表
    ls = []
  2. 包含整数的列表
    int_list = [1, 2, 3, 4, 5]
  3. 包含不同类型的元素的列表
    mixed_list = [1, "Hello", 3.14, True, [1, 2, 3]]
  4. 包含字符串的列表
    string_list = ["apple", "banana", "cherry"]

列表的遍历

  1. 通过列表的索引进行遍历
ls = [10, 30, 25, 20, 15]
for index in range(0, len(ls)): #index即为列表ls的下标索引值
    print(index, ls[index]) #输出得到列表元素对应的下标与值
  1. 直接获取列表元素
for item in ls: #item即为列表ls中的每一个元素
    print(item)
  1. 通过枚举方法
for index, item in enumerate(ls): #通过enumerate分别将列表的索引值赋给index,索引对应的值赋给item
    print(index, item)

列表的常见操作

  1. 类型转换
ls = list(range(1, 5))
ls = list('12ab5')  # 将字符串转为列表
print(ls)  # ['1', '2', 'a', 'b', '5']
  1. 查看列表内置方法
print(dir(ls))
  1. 列表的增、删、改、查
增加
ls.append('a')  # 末尾追加
ls.extend([True, 11])  # 末尾 合并另外一个列表
ls = ls + [66, 88]  # 末尾 合并另外一个列表
ls.insert(1, 'hello')  # 指定索引插入
删除
ls.remove(11)  # 指定删除值,没有返回值
print(ls)
ls.pop()  # 末尾删除
print(ls)
print(ls.pop(1))  # 根据索引删除,并返回对应的值
print(ls)
ls.clear()
print(ls)
del ls  # 删除变量
修改
ls[7] = False
查询
ls = [15, 30, 20, 35, 18, 20]
print(ls[2])  # 根据索引查询值
print(ls.index(20))  # 根据值查询对应的第一个索引
print(ls.count(20))  # 统计元素在列表中的个数
列表的其他操作
print(ls.copy())
ls.reverse()  # 列表翻转
ls.sort(reverse=False)  # 默认升序,原列表变化
ls.sort(reverse=True)  # 降序,原列表变化
newls = sorted(ls, reverse=False)  # 排序后的新列表,升序
newls = sorted(ls, reverse=True)  # 排序后的新列表,降序
print(ls)  # 原列表
注意
# sorted是python的内置函数,原列表不改变,会生成排序后的新列表
# sort是专属于列表的函数,原列表改变,没有返回值

列表的内置函数

列表基本内置函数包括:求和、求最大值和最小值、求列表的长度、列表排序、求列表平均值

print(sum(ls))  # 求和
print(max(ls))  # 最大值
print(min(ls))  # 最小值
print(len(ls))  # 列表长度
print(sorted(ls))  # 排序
print(sum(ls) / len(ls)) # 求列表平均值

列表的切片

"""
   ls[start:end:step]
   start:起始索引,默认为0,可以省略不写
   end:结束索引(不闭合),可以省略不写,直接到首尾
   step:步长,默认为1,可以省略不写
"""
ls = [0, 1, 2, 3, 4, 5, 6, 7]
print(ls[2:6:2])  # [2, 4]
print(ls[1:8:2])  # [1, 3, 5, 7]
print(ls[6:3:-1])  # [6, 5, 4]
print(ls[::-1])  # 切片翻转
print(ls[:5])  # 取前5个数据
print(ls[:len(ls) - 5 - 1:-1])  # 取后5个数据
# 切片替换,步长不为1,切片个数与替换个数一致
# ls[::2] = ['a', 'b', 'c', 'd']
ls[1:4] = [11, 22]  # 连续片段 个数可以不一致
print(ls)

列表的运算

列表成员运算
ls = ['a', 'b']
print('a' in ls)  # True
print('a' not in ls)  # False
列表乘法运算
print(ls * 3)  # ['a', 'b', 'a', 'b', 'a', 'b']
print(ls)  # ['a', 'b']
列表加法运算
print(ls + ['c', 'd'])  # ['a', 'b', 'c', 'd']

列表推导式

将列表数据取出来进行加工处理,形成新的列表
ls = [1, 2, 3, 4, 5]
print([item for item in ls])
print([item * item for item in ls])  # [1, 4, 9, 16, 25]
print([1 / item for item in ls])
取出列表中的偶数
print([item for item in ls if item % 2 == 0])  # [2, 4]
两个列表相加
ls1 = [1, 2, 3]
ls2 = [10, 20, 30]
# [11, 21, 31, 12, 22, 32, 13, 23, 33]
print([item1 + item2 for item1 in ls1 for item2 in ls2])
两个列表同位相加
ls = [ls1[index1] + ls2[index2] for index1 in range(len(ls1)) for index2 in range(len(ls2)) if index1 == index2]
print(ls)  # [11, 22, 33]
_ 代表一个模糊的需要被替换的值
print([random.randint(100, 1000) for _ in range(10)])  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
使用列表推导式快速生成一个1 - 100列表且元素不能被3整除
print([i for i in range(1, 101) if i % 3 != 0])

多维列表

列表中嵌套这多个列表,如:

ls=[[1,2],[3,4]]

lss = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]
都属于二维列表

lss = [['a', 'b'], [1, 2, 3], [True, False]]
print(lss[0][1]) # b
print(lss[2][0]) # True
二维列表的遍历
for ls in lss:
    for item in ls:
        print(item, end=' ')
    print()

print()
for i in range(len(lss)):
    for j in range(len(lss[i])):
        print(lss[i][j], end=' ')
    print()

‘’’
列表转置:行转列,列转行
[1,2,3
4,5,6
7,8,9]转为
[1,4,7
2,5,8
3,6,9]

for i in range(len(lss)):
    for j in range(len(lss[i])):
        if i < j:
            lss[i][j], lss[j][i] = lss[j][i], lss[i][j]
print(lss)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值