03:列表与元组

01:什么是列表

列表是一种Sequence类型

①有下标

②能切片

③可以存储任何类型的数据,每个元素是任意类型

④可以增删改查

02:列表的增删改查

  • 查询-获取元素--最快是下标获取   alist[1]=2
  • 增加-列表名.append(需要增加的元素值)--从尾部增加 --alist.append(50)

方法:列表名.insert(你需要的位置下标,插入的值)--alist.insert(0,50)

  • 删除-

①del-使用下标删除 --del alist[0]

②pop(下标)--有返回值

alist = [10, 20, 30, 40]

alist.pop(0)

③remove(值)每一次只能删除第一个出现的值

alist = [10, 20, 30, 40]

alist.remove(20)--效率最低print(alist)

  • 合并

alist = [10, 20, 30, 40]

print(alist+[5,3])#另存新地址

print(alist.extend([3,5]))#另存列表

print(alist)

引申:

  • 反转整个列表 reverse

alist.reverse()

  • 对列表进行排序,sort,默认是升序进行排列

alist.sort()

image.png

image.png

 

04:什么是元组

元组也是一种sequence类型

可以存储任何类型的数据,每个元素是任意类型

05:两者区别

元组不能改变其组成元素---不改变

06:特性

①元组也是一种sequence类型

②下标

③能切片

④可以储存任何类型的数据,每个元素是任意类型

⑤内容不可以改变

一般用途:查询,只读--系统配置参数

 

07:元组的定义:

空元组()--type()

一个元素的元组 tup1=(1,)

08:元组的使用:

①下标取值

②切片

③不能改变本身的内容,否则会报类型错误

image.png

总结:
字符串和元组都不能改变值和数量,否则TypeError

使用场景

1-列表-存储的对象内容是可以改变的,如:排序

2-元组-存储的对象不想让其他人改变 如:配置参数

 

09:练习题:

1、请删除列表中的第2至4个元素,并输出删除元素后的列表

li = ["alex", "wusir", "eric", "rain", "alex"]
del li[2:4]
print(li)

2、请将列表所得元素反转,并输出反转后的列表

li = ["alex", "wusir", "eric", "rain", "alex"]
li.reverse()
print(li)

3、通过对li列表的切片形成新的列表l1,l1 = [1,3,2]

li = [1,3,2,"a",4,"b",5,"c"]
print(li[:3])

4、通过对li列表的切片形成新的列表l2,l2=['a',4,'b']

li = [1,3,2,"a",4,"b",5,"c"]
print(li[3:6])

5、通过对li列表的切片形成新的列表l3,l3=[1,2,4,5]

li = [1,3,2,"a",4,"b",5,"c"]
l3 = li[::2]
print(l3)

6、将列表lis中的‘tt’变成大写

(1)第一种方法: 利用索引及upper()

lis = [2,3,"k",["qwe",20,["k1",["tt",3,"1"]],89],"ab","adv"]
lis[3][2][1][0] = lis[3][2][1][0].upper()
print(lis)

lis = [2,3,"k",["qwe",20,["k1",["tt",3,"1"]],89],"ab","adv"]
lis[3][2][1][0] = lis[3][2][1][0].replace('tt', 'TT')
print(lis)

(2)第二种方法:利用插入和删除
lis = [2,3,"k",["qwe",20,["k1",["tt",3,"1"]],89],"ab","adv"]
lis[3][2][1].insert(0, 'TT')
lis[3][2][1].pop(1)
print(lis)

7、利用下划线将列表的每一个元素拼接成字符串"alex_eric_rain"

li = ["alex","eric","rain"]
print("_".join(li))

8、查找列表li中的元素,移除每个元素的空格,并找出以’A’或者’a’开头,并以’c’结尾的所有元素,并添加到一个新列表中,最后循环打印这个新列表

li = ["taibai ","alexC","AbC ","egon","Ritian"," Wusir"," agc"]
l2 = []
for k in li:
    k = k.strip()
    if k.capitalize().startswith('A') and k.endswith('c'):
        l2.append(k)

print(l2)
原文地址:https://www.cnblogs.com/kelly11/p/13291918.html