Python基础四(数据类型之列表、元组用法)
一、补充内容
" ".join()用法-----后加可迭代对象,可加字符串,可加列表
# join s = 'alex wusir' s1 = '*'.join(s) print(s1) 输出--a*l*e*x* *w*u*s*i*r
for else 、break 、continue用法
#遇到break跳出循环,不在执行下面代码 s = 'alex wusir' for i in s: print(i) if i == 'e': break
#continue跳出本次循环,执行下一次循环 s = 'alex wusir' for i in s: if i == 'e': continue print(i)
#for else 遇到break不执行else,否则执行else内容 s = 'alexeweuesir' for i in s: if i == 'e': pass print(i) else: print(666)-------------打印
s = 'alexeweuesir' for i in s: if i == 'e': break else: print(i) else: print(666)---------------不打印
二、list增删改查
#取列表中的元素,数据类型格式即为产出对应的数据类型
l1 = [1,'alex',True,[1,2,3],(2,3,4),{'name':'alex'}]
print(l1[0],type(l1[0]))----数字int
print(l1[1],type(l1[1]))----字符串str
print(l1[3],type(l1[3]))----列表list
#列表切片产生的列表仍是列表格式
print(l1[0:3:2])
print(l1[0:4])
一、列表增
1、append------l1.append(‘小黑’)
增加到列表的最后,附加、不增
l1 = [1,'alex',True,[1,2,3],(2,3,4),{'name':'alex'}] l1.append('小黑') l1.append([1,2,3]) print(l1)
输出 ['alex', True, 'wusir', 'ritian', 'taibai', 3, 2, '小黑', [1, 2, 3]]
#使用户利用append实现列表的添加 l1 = ['alex',True,'wusir','ritian','taibai',3,2] while True: username = input('>>>/Q或q退出') if username.upper() == 'Q':break l1.append(username) print(l1)
2、insert 插入----------l1.insert(1,'egon')
插入到对应索引的前一位
l1 = ['alex',True,'wusir','ritian','taibai',3,2] l1.insert(3,'egon') print(l1) 输出 ['alex', True, 'wusir', 'egon', 'ritian', 'taibai', 3, 2]
3、extend---------l1.extend('太白金星')
将可迭代对象拆分开添加至列表的最后
l1 = ['alex',True,'wusir','ritian','taibai',3,2] l1.extend('sd') l1.extend([2,4,5]) print(l1) 输出['alex', True, 'wusir', 'ritian', 'taibai', 3, 2, 's', 'd', 2, 4, 5]
二、列表删除
1、pop-----l1.pop.()
#默认删除最后一个.pop(2), 可以删除索引对应的元素,有返回值
l1 = ['alex',True,'wusir','ritian','taibai','dfs',2]
ret = l1.pop(4)
print(ret) # 有返回值------taibai
print(l1)
输出
['alex', True, 'wusir', 'ritian', 'dfs', 2]
2、remove------l1.remove( 'a' )
按照元素去删除
l1 = ['alex',True,'wusir','ritian','taibai','dfs',2] # remove 按照元素去删除 ret = l1.remove('alex') print(ret) -----None#不可返回
print(l1)
输出 [True, 'wusir', 'ritian', 'taibai', 'dfs', 2]
3、clear---l1.clear( )
清空列表--保留内存
l1 = ['alex',True,'wusir','ritian','taibai','dfs',2] l1.clear() print(l1) 输出空列表 【】---含有内存
4、del---del l1
功能一删除列表-------彻底删除,不含内存
l1 = ['alex',True,'wusir','ritian','taibai','dfs',2] del l1 print(l1) 输出报错-----不含内存
功能二可以按照切片,按照索引去删除
l1 = ['alex',True,'wusir','ritian','taibai','dfs',2] del l1[0] print(l1)---- 输出[True, 'wusir', 'ritian', 'taibai', 'dfs', 2] del l1[0:3] print(l1)----输出['ritian', 'taibai', 'dfs', 2] del l1[1::2] print(l1)----输出['alex', 'wusir', 'taibai', 2]
三、列表 改------是先将列表里的被替换内容全部拿出后,再把需要替换的新内容全部加上去(迭代的添加)
1、 按照索引去改
l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,]
l1[0] = '男神'
print(l1)----输出['男神', 'taibai', True, 'wusir', 'ritian', 3, 2, True]
2、按照切片去改-
l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,] l1[0:2] = ['屌丝','alex'] print(l1) 输出---['屌丝', 'alex', True, 'wusir', 'ritian', 3, 2, True] l1[0:2] = 1,2,3,4 print(l1)---输出 [1, 2, 3, 4, True, 'wusir', 'ritian', 3, 2, True]
四、列表 查
1、按切片,按索引查
l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,] print(l1[0]) print(l1[0:3]) 输出 alex ['alex', 'taibai', True]
2、for 循环查
l1 = ['alex','taibai',True,'wusir','ritian',3,2,True,] for i in l1: print(i) 结果依次全部输出
三、列表其他常见操作
一、len长度---元素个数
l2 = [1,3,6,8,7,4,2,9,10]
print(l2)
输出 9
二、count ---元素出现的次数
#Ture 为 1 l2 = [3,6,8,7,4,1,1,2,9,10] ret = l2.count(True) print(ret) 结果为2
三、index 通过元素找索引(列表中没有find)
l2 = [3,6,8,7,4,1,1,2,9,10] print(l2.index(10)) 结果为0
四、排序
1、sort ---从小到大排序
l2 = [3,6,8,7,4,1,1,2,9,10] l2.sort() print(l2) 输出 [1, 1, 2, 3, 4, 6, 7, 8, 9, 10]--列表数字大小排列,从小到大
2、sort(reverse=True)----从大到小
l2 = [3,6,8,7,4,1,1,2,9,10] l2.sort(reverse=True) print(l2) 输出 [10, 9, 8, 7, 6, 4, 3, 2, 1, 1]----从大到小
3、倒序---不按大小
l2 = [3,6,8,7,4,1,1,2,9,10] l2.reverse() print(l2) 输出[10, 9, 2, 1, 1, 4, 7, 8, 6, 3]-----列表反向排序
四、列表的嵌套
列表中含有列表--子元素下含有子元素
需求1:l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[2,3]],2]中‘egon’首字母大写
l1 = ['小新','egon','wusir',[99,'tiabai','ritian',[2,3]],2]
l1[1] = l1[1].capitalize()
print(l1)
输出
['小新', 'Egon', 'wusir', [99, 'tiabai', 'ritian', [2, 3]], 2]
需求2:将列表l1 中"taibai"全部大写
l1[3][1] = l1[3][1].upper() print(l1) 输出 ['小新', 'egon', 'wusir', [99, 'TIABAI', 'ritian', [2, 3]], 2]
需求3:将列表l1中99 换成100
l1[3][0] = str(l1[3][0] + 1) print(l1) 输出 ['小新', 'egon', 'wusir', ['100', 'TIABAI', 'ritian', [2, 3]], 2]
五、元组tuple
子元素无法更改,但子元素中的子元素有可能更改
需求1:删除下列列表中【1,2,3】中的2
tu1 = (1,2,'wusir',[1,2,3],(2,3,4),'taibai',True) tu1[3].pop(1) print(tu1) 输出 (1, 2, 'wusir', [1, 3], (2, 3, 4), 'taibai', True)
需求2:输出列表tu1中的1出现的次数
tu1 = (1,2,'wusir',[1,2,3],(2,3,4),'taibai',True) print(tu1.count(1)) 输出 2---(Ture 也为1)
需求3:输出列表tu1中‘wusir’的索引
tu1 = (1,2,'wusir',[1,2,3],(2,3,4),'taibai',True) print(tu1.index('wusir')) # 元组同样没有find索引 输出 2
六、range用法
range 范围当做列表[ ],列表中的元素是数字,且可控的有效数字范围,一般与for搭配使用
for i in range(1,10): #[1,2,3,4...9] print(i) for i in range(1,101): #[1到100] print(i) for i in range(11): #[0,1,2...10] print(i) for i in range(1,10,2): # [1,3,5,7,9] print(i) for i in range(10,0,-1): #[10到1] print(i) for i in range(10,-2,-1): # [10到-1] print(i)
需求:实现输出 l1 = [1,2,3,'alex',[2,3,'wusir'],7]里面的每个子元素的依次输出
l1 = [1,2,3,'alex',[2,3,'wusir'],7] for i in l1: if type(i) == list: # 表示i的类型是列表 for j in i: print(j) else: print(i)