列表
1、列表(list)基本使用
列表使用[]来表示,每个元素用英文逗号隔开
列表中的元素是有序的:
支持索引取值
支持切片:切片得到的结果还是一个列表
支持索引取值
列表内的元素可以是任意类型
# 列表可以同时保存多个数据
info = ['小米', 24, True, 3.25]
print(info)
# 列表支持切片 切片取头不取尾
res = info[1:3]
print(res)
# 索引取值 索引是从0开始的
res2 = info[0]
print(res2)
# 列表内的元素可以是任意类型
list1 = ['445', 452, 4.52, ['python', True, 222, 2.65]]
print(list1)
2、列表的增删改查
2.1、添加数据
- append:往字符串结尾处添加一个元素
- insert:往列表中指定索引位置插入元素
- extend:一次性往列表尾部插入多个元素
# 添加元素------append
list1 = [11, 22, 33, 44, 55]
list1.append(888)
list1.append(666)
print(list1)
# 添加元素------insert
list2 = [1111, 22222, 3333, 444]
list2.insert(2, 'dhdhdh')
print(list2)
list2.insert(0, 'sjjjjjjj')
print(list2)
list2.insert(-1, 'qqq')
print(list2)
# 添加元素------extend
# 插入的如果是字符串是按照拆分的形式插入
list3 = [11, 22, 33, 44]
list3.extend([88, 99, 555])
list3.extend('ghjj')
print(list3)
2.2、删除数据
- remove:指定元素进行删除(如果存在多个,只会删除第一个)
- pop:指定索引进行删除(默认删除最后一个)
- clear:清空列表中的所有元素
list1 = [111, 222, 333, 111, 444, 555, 666, 777, 888, 999]
list1.remove(111)
print(list1) #[222, 333, 111, 444, 555, 666, 777, 888, 999]
list1.pop(0)
print(list1) #[333, 111, 444, 555, 666, 777, 888, 999]
list1.clear()
print(list1) #[]
2.3、修改数据
通过索引指定位置进行修改
list1 = [111, 222, 333, 111, 444, 555, 666, 777, 888, 999]
list1[3] = 'shsjj'
print(list1) #[111, 222, 333, 'shsjj', 444, 555, 666, 777, 888, 999]
2.4、查找数据
- 索引取值
- index:查找元素对应的索引
- count:统计某个元素的个数
list1 = [111, 222, 333, 111, 444, 555, 666, 111, 777, 888, 999]
# 索引取值
res = list1[-1]
print(res)
# 查找元素对应的索引,查不到会报错
res2 = list1.index(555)
print(res2)
# 统计某个元素的个数
res3 = list1.count(111)
print(res3)
#字符串的index和find方法,find方法找不到会返回-1
res5 = 'sghsjsjkai'.index('a')
res6 = 'sghsjsjki'.find('a')
print(res5)
print(res6)
3、列表的复制和排序
3.1、列表的复制
- copy:可以用来复制列表
3.2、列表的排序
- sort:升序,从小到大
- sort(reverse=True):降序,从大到小
- reverse:倒序
list1 = [11, 22, 33, 44, 55, 22, 66, 12, 25, 15, 65]
#复制
list2 = list1.copy()
list3 = list1
print(id(list1), list1)
print(id(list2), list2)
print(id(list3), list3)
# 因为list3直接等于list1,所以两者的id是一致的
# 排序
list1.sort()
print('升序的排列是:', list1)
list1.sort(reverse=True)
print('降序的排列是:', list1)
# 倒序
list1.reverse()
print('倒序的排列是:', list1)
# 使用切片进行倒序
res = list1[::-1]
print('切片倒序 :', res)
元组
1、元组的基本使用
使用()来表示
元组中可以存放任意数据类型
元组中的元素是有序的
- 支持索引取值
- 支持切片
元组中的元素是不可变的(定义了之后,元组内的元素不能进行添加修改删除)
2、元组的查找
- 通过索引取值
- index:查找指定的元素索引
- count:查找某个元素在列表中的个数
list1 = ('hshs', 55, 99, 2.3, 99, 999)
print(list1[-1])
print(list1[1:])
print(list1.index(99))
print(list1.count(99))
列表&字符串&元组
字符串、列表、元组统称为序列类型
序列的共同特征:
- 都有索引值,内部元素都是有序的
- 支持切片操作
- 都可以通过len()去获取元素的个数
- 数据类型可以相互转换
数值:
- 整数:int
- 浮点数:float
- 布尔值:bool
序列:
- 字符串:str
- 列表:list
- 元组:tuple
# ----------------------------int和float转化为str-------------------------
num1 = 99
num2 = 1.25
num3 = str(num1)
num4 = str(num2)
print(type(num1), type(num2)) # <class 'int'> <class 'float'>
print(type(num3), type(num4)) # <class 'str'> <class 'str'>
# ----------------------------str转化为int和float-------------------------
str1 = '25'
str2 = '1.25'
str3 = int(str1)
str4 = float(str2)
print(type(str1), type(str2))
print(type(str3), type(str4))
# ----------------------------列表和元组之间的转化-------------------------
# 元组转列表
tuple1 = ('525', 55, 2.35)
list1 = list(tuple1)
print(list1, type(list1))
# 列表转元组
list2 = [222, '2.32', 3.22]
tuple2 = tuple(list2)
print(tuple2, type(tuple2))
字符串和列表之间的转换
内置函数:eval:识别字符串中的有效python表达式(去除字符串两边的引号)
# --------列表转字符串----------
list1 = [11, 22, 33, 44]
s = str(list1)
print(s, type(s))
# ------------字符串转列表-------------
# 内置函数eval:
str2 = '[11, 22, 33, 44]'
str3 = '(11, 22, 33, 44)'
list2 = eval(str2)
print(list2, type(list2))
list3 = eval(str3)
print(list3, type(list3))