Python编程的两处陷阱是什么
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇"Python编程的两处陷阱是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"
千家信息网最后更新 2026年11月01日Python编程的两处陷阱是什么
这篇"Python编程的两处陷阱是什么"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"Python编程的两处陷阱是什么"文章吧。
不可变对象陷阱
思路:生成1百万个随机字符串,分别使用不可对象或可变对象合并字符串,比较花费时间。
生成随机字符串的代码:
import randomimport timebig = [chr(i) for i in range(65,91)]small = [chr(i) for i in range(97,123)]def randNStr(n):...: result = []...: for i in range(n):...: strlen = random.randint(3,9)...: result.append(''.join(random.sample(small+big,strlen)))...: return result
使用不可变对象方法:combine+s 再赋值给combine,这条语句:因为combine, s都为不可变对象,返回的结果就是新生成一个对象,对象不断堆积。
def immfn(n): ...: combine='' ...: res = randNStr(n) ...: beg = time.time() ...: print('beg time %s'%str(beg)) ...: for s in res: ...: combine = combine + s ...: #print(combine) ...: end = time.time() ...: print('end time %s'%str(end)) ...: print('elispe time: %s'%str(end-beg))为了避免重复生成新的对象,使用可变对象,文中 Python解惑之对象可变与不可变 提到过,一般可迭代对象,都是可变的。
def mutfn(n):...: combine=''...: res = randNStr(n)...: beg = time.time()...: print('beg time %s'%str(beg))...: combine = ''.join(res)...: #print('print result:%s'%combine)...: end = time.time()...: print('end time %s'%str(end))...: print('elispe time: %s'%str(end-beg))
此处使用 str.join(iter),接受可迭代对象,并只返回一个新对象。比较以上两种方法的计算时间,分别从10万,步长10万,终止到100万,比较分析合并字符串的时间。
可以看到可变对象只生成一个新对象的方法,比不可变对象在数据量越大情况下,优势更明显,呈现扩张的喇叭口,当数据为90万时,节省时间成本高达:(0.19-0.025)/0.025 = 6.6 倍。当数据量增长到1千万或更大时,优势更明显。
可变对象陷阱
BAT面试题26:一道Python填空题
题目是这样的:
def f(x,l=[]):...: for i in range(x):...: l.append(i*i)...: print(l)f(2)f(3)结果为:In [2]: f(2)[0, 1]In [3]: f(3)[0, 1, 0, 1, 4]
原因,可变对象作为函数参数,并被设为默认值后,当被再次调用函数后,函数参数原来取值将被再次索引。
为了避免这个问题,可变对象的默认值一般取值为常数:None
def f(x,l=None):...: if l is None:...: l = []...: for i in range(x):...: l.append(i*i)...: print(l)...:
这样连续被调用时,将会按照预期输出。
以上就是关于"Python编程的两处陷阱是什么"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
对象
可变
陷阱
内容
字符
字符串
时间
生成
编程
函数
数据
方法
明显
优势
再次
参数
就是
文章
知识
篇文章
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
中关村互联网科技集团
互联网科技工作委员会毛军
广州百单互联网科技有限公司
科技信息互联网
港股互联网科技股
没上市的科技互联网公司
广州互联网科技公司
互联网科技的发展
华宇互联网科技
华中科技大学互联网
亿账通互联网科技
深圳艾佳互联网科技
上海亿帐通互联网科技
互联网金融和金融科技
成都互联网科技公司工作好不好
互联网科技大奖都有哪些公司
互联网科技和信息
科技互联网海报
吉林省码上互联网科技电话
米泉互联网科技专业怎么样
奇酷互联网科技公司
朗涯互联网科技
互联网金融科技创新
科技赋能互联网健康
广州新华互联网科技学校电竞方面
互联网安防科技感
有人说阿里系是互联网科技企业
山东大美朱楼互联网科技有限公司
福州德业互联网科技
北京品多多互联网科技有限公司