python 字典操作中items的用法以及python中的集合操作

在字典操作中有一种常见的操作就是items,小笔记走一下

先创建一个散列表(字典),每个key对应的value都是一个集合(使用set()实现)

code:

stations = {}
stations["kone"] = set(["id","nv","ut"])
stations["ktwo"] = set(["wd","id","mt"])
stations["kthree"] = set(["or","nv","ca"])
stations["kfour"] = set(["nv","ut"])
stations["kfive"] = set(["ca","az"])
print(stations)

输出:

{'kfive': {'az', 'ca'},
 'kfour': {'nv', 'ut'},
 'kone': {'id', 'nv', 'ut'},
 'kthree': {'ca', 'nv', 'or'},
'ktwo': {'id', 'mt', 'wd'}}

使用items看一下输出结构:

stations.items()
Out[23]: dict_items([('kthree', {'nv', 'ca', 'or'}), ('ktwo', {'wd', 'mt', 'id'}), ('kone', {'ut', 'id', 'nv'}), ('kfour', {'ut', 'nv'}), ('kfive', {'ca', 'az'})])

可以看到items把字典的每一对key和value组成数组后以列表的形式返回。

items获取字典的key和value:

keys = []
values = []

for key, value in stations.items():
    keys.append(key)
    values.append(value)
    
print("keys:\n",keys)
print("values:\n",values)

输出:

keys:
 ['kfive', 'kone', 'ktwo', 'kthree', 'kfour']
values:
 [{'ca', 'az'}, {'id', 'ut', 'nv'}, {'id', 'wd', 'mt'}, {'ca', 'or', 'nv'}, {'ut', 'nv'}]

当然也可以利用for循环分别获取keys值和values值,就相当于dict.keys()和dict_values()方法

注意字典不支持index操作,比如:

stations.items()[0]

会报错:TypeError: 'dict_items' object does not support indexing

① 集合的符号运算操作:

python中,利用"&"求交集,"|"求并集,"-"求差集(补集)

a = set([1,3,5,7,9])
print(a)
Out[1]: {1, 3, 5, 7, 9}
b = set([1,2,3,4,5])
a&b
Out[2]: {1, 3, 5}
a|b
Out[3]: {1, 2, 3, 4, 5, 7, 9}
a-c

Out[4]: {7, 9}

② 集合元素增删操作:

python中,利用"add"h和"remove"对集合的元素进行增删操作

a.add(2)
print(a)
Out[64]: {1, 2, 3, 5, 7, 9}
a.remove(9)
print(a)

Out[66]: {1, 2, 3, 5, 7}

提醒:使用add和remove对集合元素进行增删操作只能传入一个元素,如果传入多个会报错如下:

TypeError: add() takes exactly one argument (4 given)

The end.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无情的搬砖机器

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值