Python的五个坑分别是什么
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章将为大家详细讲解有关Python的五个坑分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。今天,跟大家探讨几个Python比较常见的坑点
千家信息网最后更新 2025年12月01日Python的五个坑分别是什么
这篇文章将为大家详细讲解有关Python的五个坑分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
今天,跟大家探讨几个Python比较常见的坑点。
1 含单个元素的元组
Python中有些函数的参数类型为元组,其内有1个元素,这样创建是错误的:
c = (5) # NO!
它实际创建一个整型元素5,必须要在元素后加一个逗号:
c = (5,) # YES!
2 默认参数设为空
含有默认参数的函数,如果类型为容器,且设置为空:
def f(a,b=[]): # NO!
print(b)
return b
ret = f(1)
ret.append(1)
ret.append(2)
# 当再调用f(1)时,预计打印为 []
f(1)
# 但是却为 [1,2]
这是可变类型的默认参数之坑,请务必设置此类默认参数为None:
def f(a,b=None): # YES!
pass
3 共享变量未绑定之坑
有时想要多个函数共享一个全局变量,但却在某个函数内试图修改它为局部变量:
i = 1
def f():
i+=1 #NO!
def g():
print(i)
应该在f函数内显示声明i为global变量:
i = 1
def f():
global i # YES!
i+=1
4 列表快速复制之坑
在python中*与列表操作,实现快速元素复制:
a = [1,3,5] * 3 # [1,3,5,1,3,5,1,3,5]
a[0] = 10 # [10, 2, 3, 1, 2, 3, 1, 2, 3]
如果列表元素为列表或字典等复合类型:
a = [[1,3,5],[2,4]] * 3 # [[1, 3, 5], [2, 4], [1, 3, 5], [2, 4], [1, 3, 5], [2, 4]]
a[0][0] = 10 #
结果可能出乎你的意料,其他a[1[0]等也被修改为10
[[10, 3, 5], [2, 4], [10, 3, 5], [2, 4], [10, 3, 5], [2, 4]]
这是因为*复制的复合对象都是浅引用,也就是说id(a[0])与id(a[2])门牌号是相等的。如果想要实现深复制效果,这么做:
a = [[] for _ in range(3)]
5 列表删除之坑
删除一个列表中的元素,此元素可能在列表中重复多次:
def del_item(lst,e):
return [lst.remove(i) for i in e if i==e] # NO!
考虑删除这个序列[1,3,3,3,5]中的元素3,结果发现只删除其中两个:
del_item([1,3,3,3,5],3) # 结果:[1,3,5]
正确做法:
def del_item(lst,e):
d = dict(zip(range(len(lst)),lst)) # YES! 构造字典
return [v for k,v in d.items() if v!=e]关于Python的五个坑分别是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
元素
函数
参数
变量
类型
结果
内容
字典
文章
更多
知识
篇文章
这是
不错
两个
也就是
也就是说
做法
全局
单个
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库查询是不是创建了新的表
云服务器创建购买费用
敏捷软件开发探析
西集网络安全产业联盟
网络安全用微型基站整机
局域网络服务器需要软件吗
服务器报警400是什么意思
海康威视sip服务器地址
数据库的就业岗位及薪资
什么时候数据库
软件开发变量和参数区别
joomla 数据库
tomcat服务器管理地址
内江跑腿app软件开发
JAVA软件开发的自我介绍
想考公安局的网络安全特招
计算机网络技术对金融
网络技术培训需要什么
服务器root帐号是什么意思
昆山软件开发培训机构
数据库入校年
2020国家网络安全宣传周预告
服务器报警400是什么意思
西安烽火软件开发公司
美团网软件开发工资
佛山教育软件开发外包
修数据库
数据库中添加两个文件组
erp厂商有服务器吗
税务网络安全大比武试题