@[TOC](Python 列表和元组知识点)

1.列表

  • 列表可以索引、切片、步长操作
    li = [100, 'amw', True, 6668, 'kvi', [1, 'abc', 90, '12a'], False]
    # 索引
    print(li[0])
    print(li[5][1])
    # 切片,遵循“顾头不顾腚”原则
    print(li[:3])
    print(li[2:5])
    print(li[-3:-6:-1])
    print(li[::-2])
    # 运行结果
    100
    abc
    [100, 'amw', True]
    [True, 6668, 'kvi']
    ['kvi', 6668, True]
    [False, 'kvi', True, 100]
    

列表的创建

  • 方式一:

    li = [1, 2, 'abc']
    
  • 方式二:

    li = list()             # 创建一个空列表
    li = list('amwkvi')     # 创建列表内容为['a','m','w','k','v','I']
    
  • 方式三:列表推导式

    list1 = [i for i in range(10)]
    print(list1)        # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    list2 = [i for i in 'range(10)']
    print(list2)        # ['r', 'a', 'n', 'g', 'e', '(', '1', '0', ')']
    

    列表元素的增加,常用三个方法

  • list.append('元素')方法:在列表的最后增加一个元素

  • list.insert(索引,'元素')方法:在列表的指定位置插入元素

  • 迭代追加,list.extend('字符串'):在列表的最后迭代增加数个元素

    li = [23, 4, 'ab', True]
    li.extend('soft')               # 迭代追加是以最小元素为单位
    print(li)
    li.extend(['soft', 99, False])  # 最小单位是列表中的元素
    print(li)
    # 运行结果
    [23, 4, 'ab', True, 's', 'o', 'f', 't']
    [23, 4, 'ab', True, 's', 'o', 'f', 't', 'soft', 99, False]
    

    列表元素的删除

  • list.pop()方法:默认删除列表中最后一个元素,也可按照索引位置删除指定元素,并将删除的元素返回。

    li = [23, 4, 'ab', True]
    print(li.pop(-2))           # 直接将返回值输出
    >>>ab
    
  • list.remove()方法:删除指定元素,如有重名元素,则删除重名的第一个。

    li = [23, 4, 'ab', True,'ab']
    li.remove('ab')
    print(li)
    >>>[23, 4, True, 'ab']
    
  • list.clear()方法:清空列表

  • del 指令:按照索引(切片)删除对应元素

    li = [23, 4, 'ab', True,'ab',False,'amw',35,100,'kvi']
    # 按照索引删除指定元素
    del li[3]
    print(li)
    # 按照切片(步长)删除几个元素
    del li[1::2]
    print(li)
    >>>[23, 4, 'ab', 'ab', False, 'amw', 35, 100, 'kvi']
    [23, 'ab', False, 35, 'kvi']
    

    对列表元素的修改

  • 直接按照索引序号对元素进行修改。

    li = [23, 4, 'ab', True]
    li[0]='tree'
    print(li)
    >>>['tree', 4, 'ab', True]
    
  • 按照切片(步长)对几个元素进行修改

    li = [23, 4, 'ab', True,'ab',False,'amw',35,100,'kvi']
    li[3:]='abcdefghijk'        # 从索引序号为3的位置开始对列表进行迭代修改
    print(li)
    >>>[23, 4, 'ab', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k']
    

li = [23, 4, 'ab', True, 'ab', False, 'amw', 35, 100, 'kvi']
li[1::2] = ['1', 43, '*&%', 'qwr',888] # 加了步长需应对修改元素个数
print(li)

[23, '1', 'ab', 43, 'ab', '*&%', 'amw', 'qwr', 100, 888]

## 对列表元素的查询
  • 可以使用索引,切片(步长)
  • 使用遍历for循环

2.列表的嵌套

举个例子

lis = [2, 30, "k", ["qwe", 20, ["k1", ["tt", 3, "1"]], 89], "ab", "adv"]
# 将列表lis中的"tt"变成大写(用两种方式)。
# lis[3][2][1][0] = 'TT'
lis[3][2][1][0] = lis[3][2][1][0].upper()

# 将列表中的数字3变成字符串"100"(用两种方式)。
# lis[3][2][1][1] = str(lis[3][2][1][1]+97)
lis[3][2][1][1] = '100'

# 将列表中的字符串"1"变成数字101(用两种方式)。
# lis[3][2][1][2] = int(lis[3][2][1][2])+100
lis[3][2][1][2] = 101

print(lis)
>>>[2, 30, 'k', ['qwe', 20, ['k1', ['TT', '100', 101]], 89], 'ab', 'adv']

3.元组

元组:是一种只读列表,存放大量数据,可以索引、切片(步长)、遍历。

  • 格式:tupe1 = (100,'python',True,[1,2,3])

    tupe1 = (100, 'python', True, [1, 2, 3])
    print(len(tupe1))       # 可以用len()方法获取元组里成员个数
    print(tupe1[1])         # 直接按索引号打印元组里的数据
    for t in tupe1:
    print(t)            # 用遍历的方法打印元组里的所有成员信息
    # 元组里包含有列表的情况下,可以对列表里的成员进行修改
    tupe1[3][0] = 666       
    del tupe1[3][1]
    

    元组的应用

  • 元组用于拆包,分别赋值。

    a,b = 1,2
    print(a,b)
    >>>1 2
    
  • 元组用于存放一些定义之后允许改变的固定数据:身份证号、用户名、密码之类

图片分享

在这里插入图片描述