京公网安备 11010802034615号
经营许可证编号:京B2-20210330
来源:麦叔编程
作者:麦叔
今天分享13个Python代码技巧。
来,数一数你知道几个。最后大家比一比!
1,2,3,开始!
作为程序员,一定离不开两个字:性能。
工作中经常要去解决性能的问题:
用time模块可以计算代码执行时间:
import time startTime = time.time()
# 要衡量的代码 for i in range(1000000):
print('麦叔:大家早上好!')
endTime = time.time()
totalTime = endTime - startTime print("总时间= ", totalTime)
你会吗?如果会,给自己加1分!
假设有两个列表,你想获取列表中的不同元素。
可以使用set的symmetric_difference方法:
list1 = ['张三', '李四', '王五', '大美', '如花'] list2 = ['张三', '李四', '王五', '麦叔'] set1 = set(list1) set2 = set(list2) list3 = list(set1.symmetric_difference(set2)) print(list3) #打印:['大美', '如花', '麦叔']
你会吗?如果会,给自己加1分!
在程序的世界里,内存是绝对的稀缺资源。程序员绞尽脑汁的想办法提升内存使用效率,有的为此头发都秃了。
所以了解某些对象所使用的内存数量是常用操作。使用sys.getsizeof可以获得对象所占用的字节数:
import sys
list1 = ['张三', '李四', '王五', '大美', '如花'] print("list1所用字节数 = ",sys.getsizeof(list1))
name = '麦叔' print("name的字节数 = ",sys.getsizeof(name))
注意:对于list等容器类对象,打印出的字节数只是容器本身占用的内存数,不包括它存放的内容所占用的内存。
了解Python的内存管理,请看我另一篇文章:
Python是如何管理内存的?
你会吗?如果会,给自己加1分!
第一个列表中存放了所有的迟到记录,里面有重复的名字。你上学迟到过吗?
我们要做的是去掉重复,获得一份没有重复的迟到人名单。
最简单的方法就是把list转成set,因为set是不允许重复的。
late_names = ['张三', '李四', '王五', '大美', '如花', '张三', '李四', '林志颖',
'大美'] print("迟到记录= ", late_names)
unqiue_late_names = list(set(late_names)) print("迟到过的人= ", unqiue_late_names)
你会吗?如果会,给自己加1分!
可以判断第一个元素的个数是否和列表的长度相同:
list1 = [20, 20, 20, 20] print("list1中都相同吗?", list1.count(list1[0]) == len(list1))
list2 = [20, 20, 20, 50] print("list2中都相同吗?", list2.count(list2[0]) == len(list2))
你会吗?如果会,给自己加1分!
有两个列表,里面内容相同,但顺序不同。
我们想确定一下它们是否完全相同。
有两个办法:
from collections import Counter one = [33, 22, 11, 44, 55] two = [22, 11, 44, 55, 33]
print("相同吗?", Counter(one) == Counter(two)) print("相同吗?", sorted(one) == sorted(two))
你会吗?如果会,给自己加1分!
由于set不能重复的特性,经常在判断唯一或者去重的时候使用。
下面的isUnque方法,通过推导式生成一个由None或True组成的序列。如果里面有True就说明重复:
def isUnique(item): tempSet = set()
return not any(i in tempSet or tempSet.add(i) for i in item)
list1 = [123, 345, 456, 23, 567]
print("list1都唯一吗? ", isUnique(list1))
list2 = [123, 345, 567, 23, 567]
print("list2都唯一吗? ", isUnique(list2))
你会吗?如果会,给自己加1分!
有时候从网上接收到的数据是字节码,比如这样的:xe9xbaxa6xe5x8fx94
我们需要把字节码转成字符串,否则就是乱码。
在转码的过程中也要使用正确的编码规则,否则还是乱码。
byteVar = bytes("麦叔密码", 'utf-8') print(byteVar) #编码规则不对,乱码:楹﹀彅瀵嗙爜
str1 = str(byteVar.decode("gbk")) print("字符串是:" , str1 ) #编码规则正确,
不乱 str2 = str(byteVar.decode("utf-8")) print("字符串是:" , str2 )
你会吗?如果会,给自己加1分!
循环的时候经常要打印序号,使用enumerate::
listOne = [123, 345, 456, 23] for index, element in enumerate(listOne): print(index, element)
你会吗?如果会,给自己加1分!
使用**给字典先解包,再把它们合并起来。合并的过程中,如果后面的key和前面一样会覆盖前面的value。
names1 = {1: '张三', 2: "李四", 3:"王五"}
names2 = {2: '麦叔', 4: "小强"}
all_names = {**names1, **names2} print(all_names)
你会吗?如果会,给自己加1分!
使用zip先把两个列表合成由元组组成的列表,然后再转成字典:
ids = [1, 2, 3, 4, 5] names = ['张三', '李四', '王五', '大美', '如花'] name_dict = dict(zip(ids, names)) print(name_dict)
你会吗?如果会,给自己加1分!
浮点数的计算可能会产生很多位小数,假设我们要求只显示2位小数:
number= 88.234578965467 print('{0:.2f}'.format(number))
你会吗?如果会,给自己加1分!
Python函数可以返回多个值,用逗号隔开。
实际上是返回了一个元组,但Python会自动解包,所以调用者可以直接使用返回值:
def total_diff(num1, num2): total = num1 + num2
diff = num1 - num2
return total, diff
total, diff = total_diff(99, 88)
print("总和:", total, "差额:", diff)
这13个小技巧,你会几个呢?别的小伙伴会几个呢?投票查看:
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
在数据驱动的精细化运营体系中,指标是业务判断、效果复盘、策略优化的核心依据。随着企业数据化程度提升,指标数量持续膨胀,但 ...
2026-07-23在用户运营与产品增长体系中,留存是衡量产品真实价值与用户粘性的核心标尺,也是决定用户生命周期价值、获客投产比的底层因素。 ...
2026-07-23 很多数据分析师精通Excel、SQL、Python等工具,但当被问到“面对一个具体的业务问题,该用什么分析方法”“描述性分析和诊断 ...
2026-07-23【核心关键词】埋点、产品、互联网、数据库、决策、数据分析、产品经理、商业模式、移动互联网、指标体系、运营模块、大数据平 ...
2026-07-22在高并发、大数据量的业务系统中,单表数据量达到千万级甚至亿级后,会出现查询性能骤降、索引维护成本飙升、存储扩容困难等问题 ...
2026-07-22 很多企业团队并非缺乏指标,而是陷入“指标失控”:仪表盘上堆满实时跳动的数据,却无法回答“当前瓶颈在哪、下一步该做什么 ...
2026-07-22在金融风控、企业运营、行业研究等数据分析场景中,大量数据以面板数据形态存在:例如多家分支机构连续多个季度的风险指标、多位 ...
2026-07-21 很多数据分析师每天都在计算指标、制作报表,但当被问到“什么叫指标数据元”“指标数据标准包含哪些核心维度”“指标数据质 ...
2026-07-21一、活动介绍 2026暑期CDA备考冲刺季,为想利用假期拿证的你量身打造。考点胶囊内容搭配多重硬核福利,让你在旅行、实习、居家 ...
2026-07-21金融行业的运营风险贯穿业务全流程,涵盖交易欺诈、操作违规、流程漏洞、合规偏差、客户信用异常等多元场景,是银行、保险、证券 ...
2026-07-17财产保险作为金融行业的核心板块,涵盖车险、家财险、责任险、企财险等多元品类,是个人与企业抵御财产风险、经营风险的重要保障 ...
2026-07-17 很多数据分析师能熟练写SQL、做透视表,但当被问到“数据是从哪里来的?经过哪些加工才进入数据仓库?ETL具体做了什么?”时 ...
2026-07-17【核心关键词】模块、餐饮、客户、门店、企业、订单、供应链、多样化、产品、生产计划、数据分析、生产管理、物料管理、业务分 ...
2026-07-16在数字化分析时代,原始数据本身不具备业务价值,只有通过科学的统计学方法加工、拆解、验证与解读,才能挖掘数据背后的规律、差 ...
2026-07-16 很多数据分析师能熟练地写SQL、做透视表、算描述性统计,但当被问到“如何预测用户流失概率”“如何归因销量下滑的关键因素 ...
2026-07-16在描述性统计分析、数据预处理、异常值排查与多组数据分布对比工作中,箱线图(Box Plot)是应用最广泛的可视化与统计工具之一。 ...
2026-07-15在企业数据存储、业务统计与数据分析工作中,绝大多数业务数据都带有时间维度属性,例如订单创建时间、用户注册时间、支付完成时 ...
2026-07-15 很多数据分析师拿到数据就开始清洗、建模,但当被问到“这批数据属于什么类型——结构化还是非结构化?分类变量还是数值变量 ...
2026-07-15【核心关键词】产品、经营、客户、调研、销售额、宏观、会计行业、客户满意度、发展趋势、经营状况、数据分析、竞争对手、数据 ...
2026-07-14问卷调查是市场调研、用户研究、社会调研与产品分析的核心数据采集方式。问卷数据大多以分类数据为主,例如用户性别、年龄分层、 ...
2026-07-14