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
posted @ 2020-05-13 23:48  菜鸟鸭  阅读(71)  评论(0)    收藏  举报