1.list
列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型.比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如:
li = [‘alex’,123,Ture,(1,2,3,’wusir’),[1,2,3,’小明’,],{‘name’:’alex’}]
列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。
1.2. 列表的创建
# 创建一个列表有三种方式: # 方式一:(常用) l1 = [1, 2, '太白'] # 方式二:(不常用) l1 = list() # 空列表 # l1 = list(iterable) # 可迭代对象 l1 = list('123') print(l1) # ['1', '2', '3'] # 方式三:列表推导式(后面的课程会讲到) l1 = [i for i in range(1,5)] print(l1) # [1, 2, 3, 4]
1.3 列表的索引切片
l1 = ['a', 'b', '太白', 3, 666] print(l1[0]) # 'a' print(l1[-1]) # 666 print(l1[1:3]) # ['b', '太白'] print(l1[:-1]) # ['a', 'b', '太白', 3] print(l1[::2]) # ['a', '太白', 666] print(l1[::-1]) # [666, 3, '太白', 'b', 'a']
li = [1, 3, 2, "a", 4, "b", 5,"c"] 通过对li列表的切片形成新的列表l1,l1 = [1,3,2] 通过对li列表的切片形成新的列表l2,l2 = ["a",4,"b"] 通过对li列表的切片形成新的列表l4,l4 = [3,"a","b"] 通过对li列表的切片形成新的列表l6,l6 = ["b","a",3]
2.增
# append 追加,给列表的最后面追加一个元素 l = [1, 2, 'a'] l.append(666) print(l) # [1, 2, 'a', 666] # insert 插入在列表的任意位置插入元素 l = [1, 2, 'a'] l.insert(1,'太白') print(l) # [1, '太白', 2, 'a'] # extend 迭代着追加,在列表的最后面迭代着追加一组数据 l = [1, 2, 'a'] l.extend('太白a') print(l) 列表的增
3.删
# pop 通过索引删除列表中对应的元素,该方法有返回值,返回值为删除的元素 l = ['太白', 'alex', 'WuSir', '女神'] ret = l.pop(1) print(ret,l) # alex ['太白', 'WuSir', '女神'] # remove 通过元素删除列表中该元素 l = ['太白', 'alex', 'WuSir', '女神'] l.remove('alex') print(l) # ['太白', 'WuSir', '女神'] # clear 清空列表 l = ['太白', 'alex', 'WuSir', '女神'] l.clear() print(l) # [] # del #按照索引删除该元素 l = ['太白', 'alex', 'WuSir', '女神'] del l[2] print(l) # ['太白', 'alex', '女神'] # 切片删除该元素 l = ['太白', 'alex', 'WuSir', '女神'] del l[1:] print(l) # ['太白'] # 切片(步长)删除该元素 l = ['太白', 'alex', 'WuSir', '女神'] del l[::2] print(l) # ['alex', '女神'] 列表的删
4.改
# 按照索引改值 l = ['太白', 'alex', 'WuSir', '女神'] l[0] = '男神' print(l) # ['男神', 'alex', 'WuSir', '女神'] # 按照切片改值(迭代着增加) l = ['太白', 'alex', 'WuSir', '女神'] l[1:3] = 'abcdefg' print(l) # ['太白', 'a', 'b', 'c', 'd', 'e', 'f', 'g', '女神'] # 按照切片(步长)改值(必须一一对应) l = ['太白', 'alex', 'WuSir', '女神'] l[::2] = '对应' print(l) # ['对', 'alex', '应', '女神'] 列表的改
5.查
切片去查,或者循环去查。
6.其他操作
count(数)(方法统计某个元素在列表中出现的次数)。
1 a = ["q","w","q","r","t","y"] 2 print(a.count("q"))
index(方法用于从列表中找出某个值第一个匹配项的索引位置)
1 a = ["q","w","r","t","y"] 2 print(a.index("r"))
sort (方法用于在原位置对列表进行排序)。
reverse (方法将列表中的元素反向存放)。
1 a = [2,1,3,4,5] 2 a.sort()# 他没有返回值,所以只能打印a 3 print(a) 4 a.reverse()#他也没有返回值,所以只能打印a 5 print(a)
列表也可以相加与整数相乘
l1 = [1, 2, 3] l2 = [4, 5, 6] # print(l1+l2) # [1, 2, 3, 4, 5, 6] print(l1*3) # [1, 2, 3, 1, 2, 3, 1, 2, 3]
li = ["alex", "WuSir", "ritian", "barry", "wenzhou"] 计算列表的长度并输出 列表中追加元素"seven",并输出添加后的列表 请在列表的第1个位置插入元素"Tony",并输出添加后的列表 请修改列表第2个位置的元素为"Kelly",并输出修改后的列表 请将列表l2=[1,"a",3,4,"heart"]的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 请将字符串s = "qwert"的每一个元素添加到列表li中,一行代码实现,不允许循环添加。 请删除列表中的元素"ritian",并输出添加后的列表 请删除列表中的第2个元素,并输出删除的元素和删除元素后的列表 请删除列表中的第2至4个元素,并输出删除元素后的列表 相应练习题
课上学习
li = ['alex','wusir','egon','女神','taibai'] #增加 append insert li.append('日天') li.append(1) print(li) while 1: username = input('>>>') if username.strip().upper() == 'Q': break else: li.append(username) print(li) li.insert(4,'春哥') print(li) li.extend('二哥') li.extend([1,2,3]) print(li) #删 li = ['taibai','alex','wusir','egon','女神',] name = li.pop(1) # 返回值 name = li.pop() # 默认删除最后一个 print(name,li) li.remove('taibai') # 按元素去删除 print(li) li.clear() # 清空 print(li) del li del li[0:2] # 切片去删除 print(li) #改 li[0] = '男兽' li[0] = [1,2,3] 切片 li[0:3] = '云姐plfdslkmgdfjglk' li[0:3] = [1,2,3,'春哥','咸鱼哥'] print(li) #查 for i in li: print(i) print(li[0:2]) #公共方法: l = len(li) print(l) num = li.count('taibai') print(num) print(li.index('wusir')) li = [1,5,4,7,6,2,3] # #正向排序 li.sort() print(li) # #反向排序 li.sort(reverse=True) print(li) # #反转 li.reverse() print(li)
列表的嵌套
#列表的嵌套 li = ['taibai','武藤兰','苑昊',['alex','egon',89],23] print(li[1][1]) name = li[0].capitalize() # print(name) li[0] = name li[0] = li[0].capitalize() li[2] = '苑日天' print(li[2].replace('昊','ritian')) li[2] = li[2].replace('昊','ritian') li[3][0] = li[3][0].upper() print(li)
2.tuple
对于容器型数据类型list,无论谁都可以对其增删改查,那么有一些重要的数据放在list中是不安全的,所以需要一种容器类的数据类型存放重要的数据,创建之初只能查看而不能增删改,这种数据类型就是元组。
元组:俗称不可变的列表,又被成为只读列表,元祖也是python的基本数据类型之一,用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以.但就是不能改.
tu1 = ('a', 'b', '太白', 3, 666) print(tu1[0]) # 'a' print(tu1[-1]) # 666 print(tu1[1:3]) # ('b', '太白') print(tu1[:-1]) # ('a', 'b', '太白', 3) print(tu1[::2]) # ('a', '太白', 666) print(tu1[::-1]) # (666, 3, '太白', 'b', 'a') 元组的索引切片
2.1元组其他操作方法
因为元组的特性,直接从属于元组的元素不能更改,所以元组只能查看。
# 可以利用for循环查询 tu1 = ('a', 'b', '太白', 3, 666) for i in tu1: print(i)
index:通过元素找索引(可切片),找到第一个元素就返回,找不到该元素即报错。
tu = ('太白', [1, 2, 3, ], 'WuSir', '女神') print(tu.index('太白')) # 0
count: 获取某元素在列表中出现的次数
tu = ('太白', '太白', 'WuSir', '吴超') print(tu.count('太白')) # 2
len
tu1 = (1,2,3,4,84,5,2,8,2,11,88,2) print(len(tu1)) 结果: 12
#元祖 只读列表,可循环查询,可切片。 #儿子不能改,孙子可能可以改。 # tu = (1,2,3,'alex',[2,3,4,'taibai'],'egon') # # print(tu[3]) # # print(tu[0:4]) # # for i in tu: # # print(i) # tu[4][3]=tu[4][3].upper() # print(tu) # tu[4].append('sb') # print(tu) # s = 'alex' # s1 = 'sb'.join(s) # print(s1) #列表转化成字符串 list -----> str join # li = ['taibai','alex','wusir','egon','女神',] # s = '++++'.join(li) #str ----->list split() # print(s) #range [1,2,3,4,5,6,.......100........] # for i in range(3,10): # print(i) # for i in range(10): # print(i) # for i in range(0,10,3): # print(i) # for i in range(10,0,-2): # print(i) # for i in range(10,-1,-2): # print(i) li = [1,2,3,5,'alex',[2,3,4,5,'taibai'],'afds'] # for i in li: # if type(i) == list: # for k in i: # print(k) # else:print(i) for i in range(len(li)): if type(li[i]) == list: for j in li[i]: print(j) else:print(li[i])