python列表

python列表

1.列表的定义

列表是最常用的Python数据类型,列表中的每个元素均会分配一个数字,用以记录位置,我们称之为 索引 (Indexes),索引值从 0 开始,依次往后计数。列表使用中括号- [ ] 包裹,元素之间使用逗号- ,分隔,其元素可以是数字、字符串、列表等其他任何数据类型。 存储一组数据,一段连续的空间,通过索引查找对应的元素,从0开始。列表的数据项不需要具有相同的类型,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
列表同样支持索引、更新、删除、嵌套、拼接、成员检查、截取、追加、扩展、排序等相关操作。如下所示:
ls = [10, 'a', True, None]
ls = [] # 空列表
ls = list() # 空列表

2.列表的遍历

# 列表遍历
ls = [10, 30, 25, 20, 15]
# 通过索引
for index in range(0, len(ls)):
    print(index, ls[index])

# 直接取元素
for item in ls:
    print(item)

# 通过枚举方法
for index, item in enumerate(ls):
    print(index, item)

3.列表的常见操作

1.列表的切片

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)
2.列表的运算
# 列表运算
ls = ['a', 'b']
# 列表乘法
print(ls * 3)  # ['a', 'b', 'a', 'b', 'a', 'b']
print(ls)  # ['a', 'b']
# 列表加法
print(ls + ['c', 'd'])  # ['a', 'b', 'c', 'd']

# 列表成员运算
print('a' in ls)  # True
print('a' not in ls)  # False
3.列表推导式
# 将列表数据取出来进行加工处理,形成新的列表
import random

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([i for i in range(10)])  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 生成长度为10的随机列表
# _代表一个模糊的需要被替换的值
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])

4.多维列表
# 多维列表
lss = [['a', 'b'], [1, 2, 3], [True, False]]
print(lss[0][1])
print(lss[2][0])

lss = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
]
# 二维列表遍历
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   1  4  7   
  4  5  6   2  5  8
  7  8  9   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)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值