码迷,mamicode.com
首页 > 其他好文 > 详细

day5作业

时间:2017-02-04 22:02:13      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:value   com   htm   div   默认   字母   list   需要   字符串   

练习:寻找差异

# 数据库中原有
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 } }

需要删除:?
需要新建:?
需要更新:?
注意:无需考虑内部元素是否改变,只要原来存在,新汇报也存在,就是需要更新

 答案:

#!usr/bin/evn python
# -*- coding:utf-8 -*-

#寻找差异

# 数据库中原有
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 }
}

updated_dict=old_dict
#dict的set
old_dict_set=set(old_dict.keys())
new_dict_set=set(new_dict.keys())

#交集 #1#3
old_new_intersection=old_dict_set.intersection(new_dict_set)

#需要删除
#old存在,new中不存在,old中要删除
#del #2 
old_dict1={}
old_new_intersection=old_dict_set.intersection(new_dict_set)
for j in old_new_intersection:
    old_dict1.setdefault(j,old_dict[j])
    #old_dict1[j]=old_dict[j]
print(old_dict1)

#old_dict_del=#2,#3
old_dict_del=old_dict_set.difference(new_dict_set)

#需要新建
#new中存在,old中不存在,old中添加
new_set=new_dict_set.difference(old_dict_set)
old_dict2=old_dict
for k in new_set:
    old_dict2[k]=new_dict[k]
print(old_dict2)

#需要更新
#注意:无需考虑内部元素是否改变,只要原来存在,新汇报也存在,就是需要更新
updated_dict=old_dict
old_dict_update=old_dict_set.intersection(new_dict_set)
for i in old_dict_update:
    updated_dict[i]=new_dict[i]
print(updated_dict)

 

练习题

1、简述普通参数、指定参数、默认参数、动态参数的区别

2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数

3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。

4、写函数,检查用户传入的对象(字符串、列表、元组)的每一个元素是否含有空内容。

5、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

6、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。

7、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。

1
2
3
dic = {"k1": "v1v1", "k2": [11,22,33,44]}
 
PS:字典中的value只能是字符串或列表

8、写函数,利用递归获取斐波那契数列中的第 10 个数,并将该值返回给调用者。

答案:

1.

(1)普通参数分为形式参数和实际参数;

(2)指定参数就是给函数一个特点的参数;

(3)默认参数就是在给函数设定好一个默认值,并且需要房子参数列表最后;

(4)动态参数就给函数一个带*(tuple or strings orlist)的参数或在带**(dict)的参数

day5作业

标签:value   com   htm   div   默认   字母   list   需要   字符串   

原文地址:http://www.cnblogs.com/ezway/p/6366415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!