<每日一题>题目14:拷贝的问题】的更多相关文章

''' 拷贝的问题 引用:无论怎么变都一起变 浅拷贝:只拷贝父对象,不会拷贝父对象中的子对象 深拷贝:完全拷贝,重新划分内存空间 ''' 具体如下图: 题目: #求a.b.c.d的值 import copy a = [1, 2, 3, 4, ['a', 'b']] b = a c = copy.copy(a) d = copy.deepcopy(a) a.append(5) a[4].append('c') 运行结果:…
2014-04-29 00:20 题目:给定一个长字符串,和一个词典.如果允许你将长串分割成若干个片段,可能会存在某些片段在词典里查不到,有些则查得到.请设计算法进行分词,使得查不到的片段个数最少. 解法:用空间换取时间的动态规划算法,首先用O(n^2)的时间判断每一个片段是否在字典里.这个过程其实可以通过字典树来进行加速,时间上能优化一个阶,不过我没写,偷懒用<unordered_set>代表了字典.之后通过O(n)时间的动态规划,dp[i]表示当前位置的查不到的片段的最少个数.对于懂代码的…
题目: def add(n,i): return n+i def test(): for i in range(4): yield i g = test() for n in [1,10,5]: g = (add(n,i) for i in g) print(list(g)) 分析: 我们知道生成器函数和生成器表达式都很"懒",只要你不找它取值它就不执行. 函数从上到下开始执行,一直到13行都没开始,13行list()函数找g要值,9-10行的生成器表达式才开始执行,我们将9-10行拆…
#项目:生成随机的测验试卷文件 import random #资料库 capitals = {'北京市':'京','上海市':'沪','天津市':'津','重庆市':'渝','河北省':'冀','山西省':'晋','辽宁省':'辽','黑龙江省':'黑','吉林省':'吉','江苏省':'苏','浙江省':'浙','安徽省':'皖','福建省':'闽','江西省':'赣','山东省':'鲁','河南省':'豫','湖北省':'鄂','湖南省':'湘','广东省':'粤','海南省':'琼','四…
题目: def demo(): for i in range(4): yield i g = demo() g1 = (i for i in g ) g2 = (i for i in g1) print(list(g1)) print(list(g2)) 分析: 按照生成器表达式和生成器函数不取值不执行的做法 一直到10行list(g1) 找g1取值, 10行list()找7行g1取值 g1找5行g 取值 g找1行生成器函数取值 ,得到g = (0,1,2,3) g1 = (0,1,2,3) l…
#11.编写程序,输入一个自然数,输出它的二进制.八进制.十六进制表示形式 Num = input("请输入任性自然数:") Num = eval(Num) print("二进制:",bin(Num)) print("八进制:",oct(Num)) print("十六进制:",hex(Num)) #12.简述迭代器和生成器的区别 ''' 迭代器:类中有next和iter方法,可以使用for循环(例:字符串(string),列表…
题目: 解答: 第一个表创建: create table class( cid int not null auto_increment primary key, caption char(20) not null )engine=innodb default charset=utf8; 插入数据: insert into class(caption) values('三年二班'); insert into class(caption) values('一年三班'); insert into cl…
def select_d(list,d): # list = sorted(list) sum = {} for i in list: if i+d in list: sum[i] = i+d return sum list = [1,2,3,4,5,6,7,8,9,0,1213,12,31,2,13,21,21,221,11,10] print(select_d(list,2)) 运行结果: {1: 3, 2: 4, 3: 5, 4: 6, 5: 7, 6: 8, 7: 9, 8: 10, 9…
def log(func): def inner(*args,**kwargs): with open('log',mode='a',encoding='utf-8') as f: #以追加的方式打开 f.write(func.__name__+'\n') #写人调用函数的函数名,以\n结尾 ret = func(*args,**kwargs) return ret return inner @log def func_1(): print('执行一次func_1') @log def func…
这里做个最简单的账号密码验证,主要为了实现装饰器同时对多个函数起作用 FLAG = False #加一个变量防止多次登录验证 def wrapper(f): def inner(*args,**kwargs): '''登录程序''' global FLAG #将FLAG变量设置成全局变量 if FLAG: ret = f(*args, **kwargs) return ret else: username = input('username:') password = input('passwo…