python基础语法

python容器类型:列表

列表介绍

  • 概述: 属于容器的一种,属于可变类型.

    • 格式:
list1 = [1,2,3...]
list2 = []
list3 = list()
  • 索引

    • 与字符串一样,列表中的元素也有自己的编号(下标,脚标,索引,index),且默认从0开始(正向索引),-1(逆向索引).
# 需求1: 演示定义列表.
# 1. 定义列表.
# 列表可以同时存储多个不同类型的值, 建议同时存储多个同类型的值,因为捏: 好管理.
list1 = [10, 20, 10.3, True, False, 'abc']
list2 = []      # 如果定义空列表, 推荐使用这种写法.
list3 = list()

# 2. 查看列表内容.
print(list1)
print(list2)
print(list3)

# 3. 查看变量的类型
print(type(list1))  # <class 'list'>
print(type(list2))  # <class 'list'>
print(type(list3))  # <class 'list'>
print("-" * 30)

# 需求2: 演示列表的索引操作.
list4 = [1, 2, 3, 4, 5]

# 根据索引获取元素.
print(list4[0])
print(list4[1])

# 列表属于可变类型, 所以其值是可以改变的.
list4[2] = 300

print(list4)    # [1, 2, 300, 4, 5]
  • 列表遍历

    • 概述: python 中把逐个获取容器类型中的元素过程称为遍历.
  • 思路:

    • 方式1:直接获取列表的每个元素.

    • 方式2:通过索引的方式获取列表的元素.

# 1.定义列表
list1 = ['a','b','c']
# 2.遍历列表
# 方式1:直接获取列表中每个元素
for i in list1:
    print(i)
# 方式2: 通过索引的方式获取列表的元素.
#for循环写法
for i in range(len(list1)):
    print(list1[i])
#while循环写法
i = 0
while i < len(list1):
    print(list1[i])
    i += 1
# 扩展: 列表的嵌套.
list2 = [[10, 20, 30], [40, 50], [60, 70, 80, 90]]

# 如何获取 50?
print(list2[1][1])

# 如何修改 60 => 666
list2[2][0] = 666
print('-' * 30)

# 如何遍历上述的列表嵌套形式.
# 思路1: 直接获取元素值.
for inner_list in list2:
    # 因为 inner_list 还是1个列表, 所以我们接着遍历.
    # print(inner_list)
    for value in inner_list:
        print(value, end='\t')
    print()     # 打印完1个列表后, 记得加换行.
print('-' * 30)

# 思路2: 根据索引获取元素值.
for i in range(len(list2)):
    # print(i)          # 0, 1, 2 分别代表list2列表的 3个子列表的索引.
    # print(list2[i])   # list2[i] 就是列表list2的每个 子列表, 我们接着遍历.
    for j in range(len(list2[i])):
        # 具体的获取元素值的过程, 并打印.
        print(list2[i][j], end='\t')
    print()
    
    

列表:增,删,改,查.

    • 列表名.append(任意变量即可) 往列表的末尾追加元素

    • 列表名.extend(必须为容器类型) 把容器类型中的每个变量都添加到列表中

    • 列表名.insert(索引,元素) 往列表的指定位置插入元素

  • 注意

    1. append() 和 extend() 的区别:
    • 区别1:参数不同.

    ​ append():可以传入 任意变量.

    ​ extend():必须传入 容器类型.

    • 区别2: 作用不同.

    ​ append():把元素追加到末尾,默认是当时做一个整体来添加.

    ​ extend():把容器类型的每个元素,逐个添加进来,底层有遍历的动作.

    1. insert()函数往指定位置插入数据,如果索引不合法,默认添加最前面或最后面.
# 需求1: 演示列表相关操作 增.
# 1. 定义列表.
list1 = ['a', 'b', 'c']

# 2. 演示 增 相关的函数.
# 列表名.append(任意变量即可)       往列表的末尾追加元素.
# list1.append('d')
# list1.append('e')
# list1.append('xyz')         # 是把 'xyz'当做整体来添加的.
# list1.append([10, 20, 30])  # 是把 列表 当做整体来添加的.

# 列表名.extend(必须是容器变量)     把容器类型中的每个变量都添加到 列表中.
# list1.extend(10)        # 报错.
# list1.extend('xyz')       # 字符串 = 容器类型.
# list1.extend([10, 20, 30])       # 字符串 = 容器类型.

# 列表名.insert(索引, 元素)       往列表的指定位置插入元素.
# list1.insert(1, 'd')           # 往 索引1的(前边)位置插入元素 d
list1.insert(-2, 'd')    # 往 索引-2的(前边)位置插入元素 d

# 3. 打印结果.
print(f'list1: {list1}')
# 需求2: 演示列表相关操作 删.
# 1. 定义列表, 记录元素.
list1 = ['a', 'b', 'c', 'd', 'b', 'd']
print(f'删除前: {list1}')

# 2. 测试上述的方法.
# 列表名.pop(索引)                   删除指定索引位置的元素, 并返回被删除的元素.
# print(list1.pop(2))                # c
# print(list1.pop(5))                # 正常是可以的, 但是这里是报错, 因为上边删了一个元素, 就没有索引5了
# print(list1.pop(10))               # IndexError, 索引越界错误.


# 列表名.remove(元素)                删除指定元素, 删除第一个找到的元素.
# list1.remove(0)                  # ValueError, revmoe是根据元素值删除的.
# print(list1.remove('b'))         # 删除第1个匹配到的'b',  无任何返回, 如果打印, 结果是: None
# list1.remove('b')                  # 正确

# del 列表名[索引]                   删除指定索引位置的元素.
del(list1[2])
del list1[2]      # 写法同上.

# del 列表名                        从内存中删除整个列表, 相当于该列表从未定义.
# del list1
# del(list1)    # 写法同上.

# 列表名.clear()                    清空列表, 得到1个 空列表, 类似于: list1 = []
# list1.clear()

# 3. 打印结果.
print(f'删除后: {list1}')
# 需求3: 演示列表相关操作 查.
# 1. 定义列表.
list1 = ['a', 'b', 'c', 'd', 'b', 'd']

# 2. 演示列表的 查找 相关的函数.
# 列表名.index(元素, 起始索引, 结束索引)   去列表中查找指定的元素(第一次出现的位置), 找到就返回, 找不到就: 报错.
print(list1.index('b'))    # 1
print(list1.index('b', 2))              # 4,  从索引2开始查找, 元素b 在列表中的索引
# print(list1.index('b', 2, 4))    # 在索引区间 2 ~ 4之间查找 元素b, 包左不包右, 找不到就 报错.
print('-' * 30)

# 列表名.count(元素)                    计数.
print(list1.count('b'))               # 2次

# 变量名或者元素值 in 列表名              是否在.
print('d' in list1)     # True
print(10 in list1)      # False

# 变量名或者元素值 not in 列表名          是否不在.
print('d' not in list1)     # False
print(10 not in list1)      # True
# 需求4: 演示列表相关操作 改.
# 1. 定义列表, 记录元素.
list1 = ['a', 'b', 'c', 'd', 'b', 'd']
print(f'修改前: {list1}')

# 2. 演示列表的 改 相关操作.
# 列表名[索引] = 值
# list1[1] = 100

# 列表名.reverse()                       反转列表元素内容.
# list1.reverse()         # 扩展, 你可以通过 for循环 或者 while循环的方式, 自定义代码对列表内容进行反转.

# 列表名.sort(key=None, reverse=False)   列表元素排序, key可以指定排序规则, reverse表示升序还是降序, 默认是False(升序)
# list1.sort()
# list1.sort(reverse=False)       # 效果同上, False = 不反转, 即: 升序.
# list1.sort(reverse=True)          # True = 反转, 即: 降序.

# 3. 打印结果.
print(f'修改后: {list1}')

总结

持续更新中~~~

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值