python之列表和元组及range
1.列表:python基础类型之一:其他语言中也有列表概念,js数组,可索引,可切片,可加步长
列表可以存储大量的数据32位python的限制是536870912个元素,64位python的限制是1152921504606846975个元素。
li=['alex',100,True,[1,2,3],{'name':'太白'},(22,32)]
(1)索引,切片,切片+步长
①索引,列表 里面是什么类型索引就是什么类型
print(li[0],type(li[0]))
print(li[1],type(li[1]))
print(li[2],type(li[2]))
>>>alex <class 'str'>
100 <class 'int'>
True <class 'bool'>
②切片
print(li[:4])
print(li[::2])
print(li[-1:-4:-2])
print(li[-1:2:-2])
>>>['alex', 100, True, [1, 2, 3]]
['alex', True, {'name': '太白'}]
[(22, 32), [1, 2, 3]]
[(22, 32), [1, 2, 3]]
1)增
l1=['alex','wusir','taibai','egon','景女神','文周老师','日天']
①append 追加 l1.append('小温老师') print(l1) #['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天', '小温老师'] print(l1.append([1,2,3])) #None name_list=['张三','李四'] while 1: username=input('请输入新员工姓名:').strip() if username.upper()=='Q': break name_list.append(username) print(name_list) ②insert l1.insert(1,'大宝') print(l1) #['alex', '大宝', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天'] ③entend 迭代追加,拆分可迭代对象的最小元素 l1.extend('abc') print(l1) #['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天', 'a', 'b', 'c'] l1.extend([111,222,333]) print(l1) #['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天', 111, 222, 333] l1.extend(['alex1','ss']) print(l1) #['alex', 'wusir', 'taibai', 'egon', '景女神', '文周老师', '日天', 'alex1', 'ss']
2)删
l1=['alex','wusir','taibai','egon','景女神','文周老师','日天'] ①pop 按照索引删除 l1.pop(0) #返回值 ret=l1.pop(0) print(ret) #alex print(l1) #['wusir', 'taibai', 'egon', '景女神', '文周老师', '日天'] ②remove 按照元素删除 l1.remove('alex') print(l1) #['wusir', 'taibai', 'egon', '景女神', '文周老师', '日天'] ③clear 清空 l1.clear() print(l1) #[] ④del 1)按照索引删除 del l1[0] print(l1) #['wusir', 'taibai', 'egon', '景女神', '文周老师', '日天'] 2)按照切片删除(可以加步长) ①del l1[:2] print(l1) #['taibai', 'egon', '景女神', '文周老师', '日天'] ②del l1[3:] print(l1) #['alex', 'wusir', 'taibai'] ③ del l1[1::2] print(l1) #['alex', 'taibai', '景女神', '日天'] 3)可以在内存级别删除整个列表 del l1 print(l1) #报错
3)改
①按照索引改‘ l1[2]='男神' l1[-1]='泰迪' print(l1) #['alex', 'wusir', '男神', 'egon', '景女神', '文周老师', '泰迪'] ②按照切片(加步长) 按照切片 l1[:2]='snsns' print(l1) #['s', 'n', 's', 'n', 's', 'taibai', 'egon', '景女神', '文周老师', '日天'] l1[0:4]=[11,22,33,44,55,66,77] print(l1)#[11, 22, 33, 44, 55, 66, 77, '景女神', '文周老师', '日天'] 切片+步长 一一对应 l1[:3:2]='af' print(l1) #['a', 'wusir', 'f', 'egon', '景女神', '文周老师', '日天']
4)查
①索引,切片,切片+步长
②for 循环
l1=['alex','wusir','taibai','egon','景女神','文周老师','日天']
for i in l1: print(i) >>> alex wusir taibai egon 景女神 文周老师 日天
5)其他方法
print(len(l1)) #7 查询总个数 print(l1.count('alex')) #1 某个元素出现的次数 #index 通过元素找索引 print(l1.index('taibai')) #2 l2=[5,6,7,1,4,3,2,9] #sort 排序 l2.sort() #从小到大排序 print(l2) #[1, 2, 3, 4, 5, 6, 7, 9] l2.sort(reverse= True) #从大到小排序 print(l2) #[9, 7, 6, 5, 4, 3, 2, 1] l2.reverse()#翻转 print(l2) #[9, 2, 3, 4, 1, 7, 6, 5]
2.列表的嵌套
l3=['alex','wusir',['taibai',99,'ritian'],20]
1).找到alex的e元素
方法一:分步
s1=l3[0] print(s1) print(s1[2])
方法二:简写
s2=l3[0][2] print(s2)
2).将wusir变成大写并放回
方法一:分步
s3=l3[1] s4=s3.upper() l3[1]=s4 print(s3,s4,l3) #wusir WUSIR ['alex', 'WUSIR', ['taibai', 99, 'ritian'], 20]
方法二:简写
l3[1]=l3[1].upper() print(l3) #['alex', 'WUSIR', ['taibai', 99, 'ritian'], 20]
3).给此列表['taibai',99,'ritian']追加一个元素,'文周'
l3[2].append('文周')
print(l3) #['alex', 'wusir', ['taibai', 99, 'ritian', '文周'], 20]
4).将'taibai'首字母大写
l3[2][0]=l3[2][0].capitalize() print(l3) #['alex', 'wusir', ['Taibai', 99, 'ritian'], 20]
5).将99通过数字加1的方式变成100,并放回原处
l3[2][1]+=1 print(l3) #['alex', 'wusir', ['taibai', 100, 'ritian'], 20]
3.元组:只读列表,只允许查询,不允许增删改 **
tu1=('alex',100,True,[1,2,3],{'name':'太白'},(22,33))
(1)按照索引,切片,切片+步长
print(tu1[0]) #alex print(tu1[:3]) #('alex', 100, True)
(2)for 循环查询
for i in tu1: print(i) >>>alex 100 True [1, 2, 3] {'name': '太白'} (22, 33)
(3)index,len,count
4.元组应用场景:一些非常重要的数据,不允许所有人修改,放在元组中。
元组儿子不能改,孙子可能可以改
5.range 自定制的,数字范围的,可迭代对象类比成列表
range() 一般和for 循环结合使用 顾首不顾尾
(1)
for i in range(1,11): print(i) #1 2 3 4 5 6 7 8 9 10
(2)
for i in range(1,20,2): print(i) #1 3 5 7 9 ....19
(3)
for i in range(1,101,2): print(i) #1 3 5 7 9.....99
(4)
for i in range(10,1,-1): print(i) #10 9 8 7 6 5 4 3 2
l1=('alex','wusir','taibai','egon','景女神','文周老师','日天')
1) for i in range(0,len(l1)): print(i) #0 1 2 3 4 5 6
2)
for i in l1:
print(l1.index(i)) #0 1 2 3 4 5 6
6. in 判断最小元素在不在里面
(1)s1='alex'
print('a' in s1) #True
print('al' in s1) #True
print('alx' in s1) #False
(2)
l1=('alex','wusir','taibai','egon','景女神','文周老师','日天')
print('alex' in l1) #True
print('alex' not in l1) #False
print(['alex','alex'] in l1) #False

浙公网安备 33010602011771号