python存档_Python档案袋(列表、元组、字典、集合 )

列表

可以同名,有序(通过下标可找到)

取值:

1 #声明列表

2 listx=["L0","L1","L2",33,"L4"]

3 print(listx) #输出:['L0', 'L1', 'L2', 33, 'L4']

4 print(len(listx)) #统计总个数,输出:5

5 print(listx[1]) #下标取值,输出:L1

6 print(listx[0:2])#切片区间为:[0,2),输出:['L0', 'L1']

7 print(listx[:2])#输出:['L0', 'L1']

8 print(listx[-1])#倒数第一个,输出:L4

9 print(listx.index("L1"))#查找内容的下标,查找到第一个,输出:1

10 print(listx.count("L4")) #统计值为L4的个数 输出:1

遍历:

1 #声明列表

2 listx=["L0",[11,22,33],"L1"]

3

4 print(type(listx)) #输出类型为:

5

6 for i inlistx:

7 print(i) #输出:L0 [11, 22, 33] L1

修改:

1 #声明列表

2 listx=["L0","L1","L1"]

3

4 listx[2]="L1.1" #修改值

5 listx.append("L2") #追加,结尾添加

6 listx.insert(1,"L1.0") #插入,参数(位置,内容)

7

8 listx.reverse()#反转

9 listx.sort()#排序

10

11 print(listx) #输出:['L0', 'L1', 'L1.0', 'L1.1', 'L2']

删除:

1 #声明列表

2 listx=["L0","L1","L2",33,"L4"]

3 listx.remove("L2") #删除,以内容

4 del listx[0] #删除,以下标

5 listx.pop(0) #删除,以下标,默认删除最后一个

6

7 #listx.clear() #清空列表

8 print(listx) #输出:[33, 'L4']

利用for循环的列表生成:

#生成列表,for循环的值传递到前面的算式进行值的修改

listx=[i*10 for i in range(10)]

print(listx)#输出:[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

列表排序:

#排序

listx=[20,100,66,99,11]

print(sorted(listx)) #排序,输出:[11, 20, 66, 99, 100]

列表合并:

list1=[11,22]

list2=[99,88]

list1.extend(list2) #扩展

print(list1) #输出:[11, 22, 99, 88]

列表的一一对应:

1 #一 一对应

2 list1=[11,22,33,88]

3 list2=["cc","bb","aa","dd"]

4 res=zip(list1,list2)#变成一个迭代器

5 print(next(res)) #输出:(11, 'cc')

字符串与列表的转换:

函数eval()可以将格式化的字符串转换为列表、字典等数据类型

1 a="[11,33,55]"

2

3 #转换函数

4 aa=eval(a)

5 print(aa[2]) #输出:55

6

7 #进列表转换为字符串

8 print(type(str(a))) #输出:

浅copy,只copy第一层:

1 #声明列表

2 listx=["L0",[11,22,33],"L1"]

3

4 list2=listx.copy()#浅copy,只copy第一层

5

6 list2[0]="L0000" #只改自己

7 list2[1][2]=3333333333 #一改全改

8

9 print(listx)#输出:['L0', [11, 22, 3333333333], 'L1']

10 print(list2)#输出:['L0000', [11, 22, 3333333333], 'L1']

深copy,独立分配内存空间

1 importcopy

2

3 #声明列表

4 listx=["L0",[11,22,33],"L1"]

5

6 list2=copy.deepcopy(listx)#深copy,独立分配内存空间

7

8 list2[0]="L0000" #只改自己

9 list2[1][2]=3333333333 #只改自己

10

11 print(listx)#输出:['L0', [11, 22, 33], 'L1']

12 print(list2)#输出:['L0000', [11, 22, 3333333333], 'L1']

元组:

值不可更改,值可重复,有序(通过下标可找到)

1 #声明元组

2 va=("dongxiaodong","东小东","222","dong","dong",("11",22,33))

3

4 print(type(va))#类型,输出:

5

6 print(len(va)) #总个数,输出:6

7

8 print(va.count("dong")) #统计某个值的个数 输出:2

9

10 print(va.index("dong")) #查询值的下标 输出:3

11

12 print(va[1]) #下标取值,输出:东小东

字典:

无序,键不可重复

1 #创建字典方法1

2 va={"v1":"111","v2":"222",33:"333"}

3

4 #创建字典方法2

5 va2=dict.fromkeys(["v1","v2",33],"xxxxx") #创建不同的键对应一个值

6 print(va2) #输出:{'v1': 'xxxxx', 'v2': 'xxxxx', 33: 'xxxxx'}

7

8

9 print(va[33]) #通过键取值,不存在则报错

10 print(va.get(44)) #存在则返回值,不存在则返回None

11

12 print("v1" in va) #判断键是否存在字典中

13

14 va["v1"]="1x1x1x1" #修改

15

16 va["v3"]="xxxx333333" #添加

17

18 va.update({"v1":"vvvvv11111","v4":"444444"}) #键存在则更新值,键不存在则创建

19

20 print(va.items()) #输出:dict_items([('v1', 'vvvvv11111'), ('v2', '222'), (33, '333'), ('v3', 'xxxx333333'), ('v4', '444444')])

21

22

23

24 #del va["v2"] #删除某对

25 #va.pop("v3") #删除某对

26

27 #va.popitem() #随机删除一对,默认删除最后一对

28

29 #del va #删除所有

30

31 print(va) #打印所有

32

33

34 #字典循环打印方法1

35 #效率较高,推荐

36 #循环键

37 for i inva:

38 print(i,va[i])

39

40 #字典循环打印方法2

41 #循环键值

42 for k,v inva.items():

43 print(k,v)

字典的排序

1 #排序

2 a={"5":55555,"2":88888,"32":22222}

3

4 #按键排序,键的数据类型必须一样

5 #输出:[('2', 88888), ('32', 222222), ('5', 55555)]

6 print(sorted(a.items()))

7

8 #按值排序,值的数据类型必须一样

9 #输出:[('32', 22222), ('5', 55555), ('2', 88888)]

10 print(sorted(a.items(),key=lambda x:x[1]))

集合

值不可重复,重复则保留其中一个,无序,因为集合是无序的,所以取值一般都是经过for循环,而不会使用下标取值

1 listx1=set(["10",10,11,12,12])

2 print(listx1) #输出:{10, 11, 12, '10'}

3

4 listx2=set([10,100])

5

6 #交集

7 #方法1:

8 print(listx1.intersection(listx2)) #输出:{10}

9 #方法2:

10 print(listx1 & listx2)#输出:{10}

11

12 #并集

13 #符号为:|

14 print(listx1.union(listx2)) #输出:{100, 10, 11, 12, '10'}

15

16 #差集

17 #符号为: -

18 # 在listx1中有,但listx2中没有的,参数可有对换

19 print(listx1.difference(listx2)) #{11, 12, '10'}

20

21 #子集

22 #listx2w是不是listx1的子集,返回bool

23 print(listx2.issubset(listx1)) #输出:False

24

25 #父集

26 #listx1是不是listx2的父集,返回bool

27 print(listx1.issuperset(listx2)) #输出:False

28

29 #对称差集

30 #在并集的基础上将两个集合都有的元素去掉

31 print(listx2 ^ listx1) #输出:{100, 11, 12, '10'}

32

33 listx2.add("dongxiaodong") #添加一项

34 listx2.update(["dong1","dong2"]) #添加多项

35

36 listx2.remove("dong1") #删除一项,不存在会报错

37 listx2.discard("dong1")#删除一项,不存在会返回None

38

39 print(len(listx2)) #打印长度

40

41 print(listx2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值