Python 集合 【6】

1 集合特性介绍

在 python 中集合看起来像是只有 key 的字典 不能重复

{'disk','cpu','memory','motherboard'}
>>> s1 = {'we', 1,2, 3,'we'}
>>> s1
{3, 1, 2, 'we'}

在 python 解释器中表现为 set

集合内的元素不允许重复

2 高效创建集合和转换
set()

In [96]: s1 = set()

In [97]: s1
Out[97]: set()

转换

In [99]: set('disk')
Out[99]: {'d', 'i', 'k', 's'}

In [100]: set(['disk','cpu','memory'])
Out[100]: {'cpu', 'disk', 'memory'}

In [101]: set(('disk','cpu','memory'))
Out[101]: {'cpu', 'disk', 'memory'}

In [102]: set({'disk': '560G','cpu': '4'})
Out[102]: {'cpu', 'disk'}

>>> s1 = {'we':1,'fg':2, 'rt':3}
>>> set(s1)
{'fg', 'we', 'rt'} 只能转换字典中的键

3 集合运算
a. & 交集

获取两个集合都有的元素

In [55]: s1 = {"192.168.1.51",  "192.168.1.45"}

In [56]: s2 = {"192.168.1.51", "192.168.1.78", }

In [57]: s1 & s2
Out[57]: {'192.168.1.51'}

b. |并集

把两个集合的元素合并在一起,产生一个新的集合

In [60]: s1 | s2
Out[60]: {'192.168.1.45', '192.168.1.51', '192.168.1.78'}

c. -差集

返回第一个集合中独有的元素。
就是只保留在第一个集合中出现并且不在第二个集合中出现的元素。

In [55]: s1 = {"192.168.1.51", "192.168.1.45"}

In [56]: s2 = {"192.168.1.55", "192.168.1.51"}

In [61]: s1 - s2
Out[61]: {'192.168.1.45'}

In [62]: s2 - s1
Out[62]: {'192.168.1.55'}

^异或运算

获取两个集合的分别独有的元素,组合为一个新的集合对象。

In [55]: s1 = {"192.168.1.51", "192.168.1.45"}

In [56]: s2 = {"192.168.1.55", "192.168.1.51"}

In [63]: s1 ^ s2
Out[63]: {'192.168.1.45', '192.168.1.78'}

大型数据结构应用场景

host_info = []

host_info.append(
    {'192.168.1.11':
{'cpu':['Intel(R) Core(TM) i5-5350U CPU @ 1.80GHz',4,1],
'memory':['16','4','2'],
'disk':['1T','2T']}}
)

host_info.append({'192.168.1.12':
{'cpu':['Intel(R) Core(TM) i5-5350U CPU @ 1.80GHz',4,1],
'memory':['16','4','2'],
'disk':['1T','2T']}})

取到 “1T”

print(host_info[0])
print(host_info[0].get('192.168.1.11').get('disk')[0])
发布了8 篇原创文章 · 获赞 5 · 访问量 911

猜你喜欢

转载自blog.csdn.net/wx912820/article/details/104673203