集合与字符串格式化

Posted qiuchen2018

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合与字符串格式化相关的知识,希望对你有一定的参考价值。

一、集合(set)

1、基本概念

1)定义

集合:由不同元素组成,无序,集合中元素必须为不可变类型(可hash)。

2)创建

a)直接创建

s = { }

b)set

s = set( )

2、集合函数

1)add():增加集合元素

2)clear()

3)copy()

4)pop():随机删除一个元素

      remove():指定删除某个元素,若元素不存在则报错

      discard():指定删除某个元素,若元素不存在时不报错

5)intersection()  &:交集

6)union()  |:并集

7)difference()  -:差集

8)symmetric_difference()  ^:交叉补集

9)isdisjoint():判断是否存在交集,不存在为True

10)issunset():判断s1是否为s2的子集

11)update():更新

二、字符串格式化

1、%

%s:可传递任何类型的参数(万能),但可读性差

%d:数字

%.2f:浮点数

"i am %(name)s %(age)d" % {"name":"alex","age":18}

2、format

format()的参数与前面一一对应,否则报错

*:与列表相关  **:与字典相关

print("i am {} age{}".format("alex,18"))
#字典
print("i am {} age{}".format("name" = "alex","age" = 18))
print("i am {} age{}".format(**{"name":"alex","age":18})
#列表
print("i am {}{}{}".format(1,2,3)
print("i am {}{}{}".format(*[1,2,3])

练习

寻找差异

# 数据库中原有
old_dict = {
    "#1": {hostname: c1, cpu_count: 2, mem_capicity: 80},
    "#2": {hostname: c1, cpu_count: 2, mem_capicity: 80},
    "#3": {hostname: c1, cpu_count: 2, mem_capicity: 80}
}

# cmdb 新汇报的数据
new_dict = {
    "#1": {hostname: c1, cpu_count: 2, mem_capicity: 800},
    "#3": {hostname: c1, cpu_count: 2, mem_capicity: 80},
    "#4": {hostname: c2, cpu_count: 2, mem_capicity: 80}
}

old_set = set(old_dict)
new_set = set(new_dict)

del_set = old_set.difference(new_set)
add_set = old_set.union(new_set)
intersec_set = old_set.intersection(new_set)

#删除
del_set = old_set.difference(new_set)    #删除的元素
old_set = old_set.intersection(new_set)

#更新
update_set = new_set.difference(old_set)     #更新的元素
old_set = old_set.union(new_set)

 

 

 

以上是关于集合与字符串格式化的主要内容,如果未能解决你的问题,请参考以下文章

集合与字符串格式化

代码片段 - Golang 实现集合操作

laravel特殊功能代码片段集合

我应该如何使用 Outlook 发送代码片段?

postman添加断言

如何在 Javadoc 中使用 @ 和 符号格式化代码片段?