一、列表

1. 列表的格式

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

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

2、列表的查找函数

  • index():返回指定数据所在位置的下标
  • count():统计指定数据在当前列表中出现的次数
  • len():访问列表长度,即列表中数据的个数
列表序列.index(数据, 开始位置下标, 结束位置下标)

注意:如果查找的数据不存在则报错

name_list = ['Tom', 'Lily', 'Rose', 'Lily']

print(name_list.index('Rose'))  # 2
print(name_list.index('lisa'))  # 报错

print(name_list.count('Lily'))  # 2
print(name_list.count('Lilys'))  # 0

print(len(name_list))  # 4

3、判断是否存在

  • in:判断指定数据在某个列表序列,如果在返回True,否则返回False
  • not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False
name_list = ['Tom', 'Lily', 'Rose', 'Lily']

print('Tom' in name_list)  # True
print('Toms' in name_list)  # False

print('Tom' not in name_list)  # False
print('Toms' not in name_list)  # True

4、增加

  • append():列表结尾追加数据,如果数据是一个序列,追加整个序列到列表的结尾
name_lsit = ['Tom', 'Lily', 'Rose']

# name_lsit.append('zs')
# print(name_lsit)  # ['Tom', 'Lily', 'Rose', 'zs']

name_lsit.append([11, 22])
print(name_lsit)  # ['Tom', 'Lily', 'Rose', [11, 22]]

# 1.列表数据可改变 -- 列表可变类型
# 2.append函数追加数据的时候如果数据是一个序列,追加整个序列到列表的结尾
  • extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
name_lsit = ['Tom', 'Lily', 'Rose']

# name_lsit.extend('zs')
# print(name_lsit)  # ['Tom', 'Lily', 'Rose', 'z', 's']

name_lsit.extend(['zs', 'ls'])
print(name_lsit)  # ['Tom', 'Lily', 'Rose', 'zs', 'ls']

# extend() 追加的数据是一个序列,把数据序列里面的数据拆开然后逐一添加到列表
  • insert():指定位置新增数据

语法:

列表序列.insert(位置下标, 数据)
name_lsit = ['Tom', 'Lily', 'Rose']

name_lsit.insert(1, 'zs')
print(name_lsit)  # ['Tom', 'zs', 'Lily', 'Rose']

5、删除

  • del:删除
  • pop():删除指定下标的数据(默认为最后一个),并返回该数据
  • remove():移除列表中某个数据的第一个匹配项
  • clear():清空列表
name_list = ['Tom', 'Lily', 'Rose']

# 1.del
del name_list
print(name_list)  # NameError: name 'name_list' is not defined

# del 可以删除指定下标的数据
del name_list[0]
print(name_list)  # ['Lily', 'Rose']


# 2.pop()
del_name = name_list.pop()
print(del_name)  # Rose
print(name_list)  # ['Tom', 'Lily']
del_name1 = name_list.pop(1)
print(del_name1)  # Lily


# 3.remove()
name_list.remove('Rose')
print(name_list)  # ['Tom', 'Lily']

# 4.clear()
name_list.clear()
print(name_list)  # []

6、修改

  • 通过下标修改数据
  • reverse():逆序(倒序)排列
  • sort():对数据进行排序

语法:

列表序列.sort(key=None, reverse=False)

注意:reverse=True降序,reverse=Flase升序(默认)

name_list = ['Tom', 'Lisa', 'Bob']

# 1.修改指定下标的数据
name_list[0] = 'ZS'
print(name_list)  # ['ZS', 'Lisa', 'Bob']

# 2.逆序(倒序) reverse()
list1 = [1, 3, 5, 2, 4, 9]
list1.reverse()
print(list1)  # [9, 4, 2, 5, 3, 1]

# 3.sort() 排序:升序 和 降序
list1.sort()
print(list1)  # [1, 2, 3, 4, 5, 9]
list1.sort(reverse=True)
print(list1)  # [9, 5, 4, 3, 2, 1]

7、复制

  • copy()
name_list = ['Tom', 'Bob', 'Rose']

new_list = name_list.copy()
print(new_list)  # ['Tom', 'Bob', 'Rose']

new_list1 = list(name_list)
print(new_list1)  # ['Tom', 'Bob', 'Rose']

8、列表的循环遍历

name_list = ['Tom', 'Bob', 'Lisa']

i = 0
while i < len(name_list):
    print(name_list[i])
    i += 1
name_list = ['Tom', 'Bob', 'Lisa']

for i in name_list:
    print(i)

9、列表嵌套

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

name_list = [['小米', '小明', '小红'], ['Tom', 'Bob', 'Lisa'], ['张三', '李四', '王五']]

思考:如何查找到数据李四

print(name_list[2][1])  # 李四

二、元组

1、元组的应用场景

一个元组可以存储多个数据,元组内的数据是不可修改的

t1 = (12, 22, 33)
print(type(t1))  # tuple

t2 = (10,)
print(type(t2))  # tuple

t3 = (10)
print(type(t3))  # int

t4 = ('hello')
print(type(t4))  # str

t5 = ('hello',)
print(type(t5))  # tuple

2、元组的常见操作

  • 按下标查找数据
  • index():查找某个数据,如果数据存在返回对应的下标,否则报错
  • count():统计某个数据在当前元组出现的次数
  • len():统计元组中数据的个数
t1 = ('aa', 'bb', 'cc', 'dd')

print(t1[0])  # aa

print(t1.index('dd'))  # 3
print(t1.index('ee'))  # 报错

print(t1.count('aa'))  # 1

print(len(t1))  # 4