学习python的day5之列表和元组
一、列表
1介绍
1.1)列表一次性可以存多个数据
1.2)列表存的数据可以是不同的数据类型
1.3)对列表的操作:增、删、改、查。
2.数据操作
2.1)查找
2.1.1按下标查找
list1 = ['tom', 'lili', 'siri'] print(list1[0]) print(list1[1]) print(list1[2]) ''' 输出: tom lili siri '''
2.1.2函数查找
index():返回指定数据位置下标
语法:列表序列.index(数据,开始位置下标,结束位置下标) 注:如果没有开始位置下标和结束位置下标则默认在整个列表中查找,如果查找的数据不在列表中则程序报错
list1 = ['tom', 'lili', 'siri'] print(list1.index('lili', 0, 2)) ''' 输出: 1 '''
count():统计指定数据在当前列表中出现的次数
语法:列表序列.count(数据)
list2 = [1,2,2,2,3,3,4,5] print(list2.count(2)) print(list2.count(3)) print(list2.count(5)) print(list2.count(31)) ''' 输出: 3 2 1 0 '''
len():访问列表长度,即统计列表中数据的个数
list2 = [1,2,2,2,3,3,4,5] print(len(list2)) ''' 输出: 8 '''
2.2判断是否存在
in:判断指定数据在某个列表中,在返回true,不在返回false
list1 = ['tom', 'lili', 'siri'] print('tom' in list1) print('ton' in list1) ''' 输出结果: True False '''
not in:判断指定数据不在某个列表中,不在返回true,在返回false
list1 = ['tom', 'lili', 'siri'] print('to' not in list1) print('lili' not in list1) ''' 输出结果: True False '''
2.3增加
作用:增加指定数据到列表中
append():列表结尾增加数据
语法:列表序列.append(数据)
list1 = ['tom', 'lili', 'siri'] list1.append('liqiang') print(list1) ''' 输出: ['tom', 'lili', 'siri', 'liqiang'] '''
如果增加的数据是一个序列,则将整个序列追加到列表
list1 = ['tom', 'lili', 'siri'] list2 = ['zhangsan' , 1 , 2] list1.append(list2) print(list1) ''' 输出: ['tom', 'lili', 'siri', ['zhangsan', 1, 2]] '''
extend():在列表结尾增加数据
注意:增加单个数据时,extend()的效果与append()相同,如果增加的数据是一个序列,则将这个序列中的数据逐一添加到列表
list1 = ['tom', 'lili', 'siri'] list2 = ['zhangsan' , 1 , 2] list1.extend(list2) print(list1) ''' 输出: ['tom', 'lili', 'siri', 'zhangsan', 1, 2] '''
insert():指定位置增加数据
语法:列表序列名.insert(位置下标,数据)
list1 = ['tom', 'lili', 'siri'] list1.insert(1,'hong') print(list1) ''' 输出: ['tom', 'hong', 'lili', 'siri'] '''
2.4删除
del
语法:
2.4.1 del 目标 或 del (目标)
list1 = ['tom', 'lili', 'siri'] del list1 print(list1) ''' 输出: Traceback (most recent call last): File "C:/Users/as_sc/PycharmProjects/untitled/hm-python-day5/04-删除数据.py", line 4, in <module> print(list1) NameError: name 'list1' is not defined '''
2.4.1 del 列表序列名[下标]
list1 = ['tom', 'lili', 'siri'] del list1[1] print(list1) ''' 输出: ['tom', 'siri'] '''
pop():删除指定下标位置数据(默认为最后一个数据),并返回该数据的值
语法:列表序列名.pop(下标)
list1 = ['tom', 'lili', 'siri'] result = list1.pop() print(result) print(list1) ''' 输出: siri ['tom', 'lili'] ''' list1 = ['tom', 'lili', 'siri'] result = list1.pop(1) print(result) print(list1) ''' 输出: lili ['tom', 'siri'] '''
remove():删除列表中某个数据的第一个匹配项
语法: 列表序列名.remove(数据)
list1 = ['tom', 'siri','tom', 'lili', 'tom', 'siri'] list1.remove('tom') print(list1) ''' 输出: ['siri', 'tom', 'lili', 'tom', 'siri'] '''
clear(): 清空列表
语法 : 列表序列名.clear()
list1 = ['tom', 'siri','tom', 'lili', 'tom', 'siri'] list1.clear() print(list1) ''' 输出: [] '''
2.5修改
2.5.1按照指定下标修改
list1 = ['tom', 'siri','tom', 'lili', 'tom', 'siri'] list1[0] = 'ss' print(list1) ''' 输出: ['ss', 'siri', 'tom', 'lili', 'tom', 'siri'] '''
2.5.2逆置
reverse():将列表的数据位置逆置
语法:列表序列名.reverse()
list1 = ['tom', 'siri','tom', 'lili', 'tom', 'siri'] list1.reverse() print(list1) ''' 输出: ['siri', 'tom', 'lili', 'tom', 'siri', 'tom'] '''
2.5.3 排序
sort():将列表按升序或降序排序
语法: 列表序列名.sort(key = None, reverse =Flase)
注意:key是在字典排序时使用的,reverse表示排序规则,reverse = True为降序,reverse=False为升序(也是默认排序规则)
list1 = [2,4,6,4,7,2,15,5,8] list1.sort() print(list1) list1.sort(reverse=False) print(list1) list1.sort(reverse=True) print(list1) ''' 输出: [2, 2, 4, 4, 5, 6, 7, 8, 15] [2, 2, 4, 4, 5, 6, 7, 8, 15] [15, 8, 7, 6, 5, 4, 4, 2, 2] '''
2.5.4复制列表
copy()
语法: 列表序列名.copy()
list1 = ['tom', 'siri','tom', 'lili', 'tom', 'siri'] list2 = list1.copy() print(list2) ''' 输出: ['tom', 'siri', 'tom', 'lili', 'tom', 'siri'] '''
3.列表遍历
while
list1 = ['tom', 'siri','tom', 'lili', 'tom', 'siri'] i = 0 while i<len(list1): print(list1[i]) i += 1 ''' 输出: tom siri tom lili tom siri '''
for
list1 = ['tom', 'siri','tom', 'lili', 'tom', 'siri'] for i in list1: print(i) ''' 输出: tom siri tom lili tom siri '''
4.列表嵌套
所谓列表嵌套就是一个列表里面包含了其他的子列表
list1 = [['zhang', 'li', 'mo'], [1, 2, 4], ['ss','dd']] print(list1[2][0]) print(list1[1][2]) print(list1[0][1]) ''' 输出: ss 4 li '''
二.元组
元组可以存多个数据,但元组的数据不能修改
1.定义元组
多个数据元组
tuple1 = (1,2,3)
单个数据元组
tuple = (1,)
注意:如果定义的元组只有一个数据,这个数据后面要加逗号,否则定义的数据类型不是元组,而是这个唯一的数据的数据类型
tuple1 = (1, 2, 3) tuple2 = (1,) tuple3 = (1) print(type(tuple1)) print(type(tuple2)) print(type(tuple3)) ''' 输出: <class 'tuple'> <class 'tuple'> <class 'int'> '''
2.元组的操作
元组不支持修改,只支持查找,具体如下:
按下标查找
tuple1 = (1, 2, 3) print(tuple1[0]) print(tuple1[1]) print(tuple1[2]) ''' 输出: 1 2 3 '''
index():语法与字符串、列表相同
tuple1 = (1, 2, 3) print(tuple1.index(3)) ''' 输出: 2 '''
count():统计某个数据在元组中出现的次数
len():统计元组的长度(元组中数据的个数)
tuple1 = (1, 1, 1, 2, 2, 3) print(tuple1.count(1)) print(len(tuple1)) ''' 输出: 3 6 '''
元组中的数据直接修改会报错,但如果元组中列表,修改列表中的数据,这个操作是支持的
tuple1 = ('ww', 1, 'ds', ['qw', 1, 2, 'tf'], 3) tuple1[3].append('as_scheduled') print(tuple1) ''' 输出: ('ww', 1, 'ds', ['qw', 1, 2, 'tf', 'as_scheduled'], 3) '''