省时省力!这些Python高效代码片段必须牢记!

其实,普通程序员写的代码和大神写的代码的最大区别就是我们是用代码堆砌功能,很少注重代码品质和效率,而大神们能写出优雅精简的代码,实现一个功能我们需要几十上百行代码,而他们可能一行就解决了!并且他们的代码运行效率还比你高!

今天给大家分享一些常用的高效代码片段,希望可以给大家的代码质量带来一点点提高!

单行循环列表
mylist = [11,24,56,45,60]
print([i*3 for i in mylist]) #[33, 72, 168, 135, 180]
print([i-10 for i in mylist])
[33, 72, 168, 135, 180] #[1, 14, 46, 35, 50]

这种写法可以减少你的代码行数,而且比较清晰。

获取数据类型
mylist = [123, 'python', 34.23, False, [4,5]]
print([type(i) for i in mylist])
# [<class 'int'>, <class 'str'>, <class 'float'>, <class 'bool'>, <class 'list'>]

我们有时候需要知道数据的类型,做对应的转换或者操作。可以这样判断:

print(type(123) == int) # True
获取数字的整数值
integer = 8938485
digitz = [int(i) for i in str(integer)]
print(digitz)
# [8, 9, 3, 8, 4, 8, 5]

这里的原理就是先将数字转换为字符串,然后再进行循环获取。

链式比较
a =5 
print(1 == a < 2) # False
print(2 < 4 < 5 == a)  # True

看到第一个,是不是会这样理解:1 == a 为 False,False < 2 为 False,所以最后答案为 False。

答案是对的,但是过程是错的。在 Python 中,比较逻辑是这样的:分别比较 1 == a 和 a < 2,两个都为 True,结果才为 True。

按照这个逻辑,自己领会一下第二个的运行逻辑。

字符串乘法器

如果需要重复生成字符串,通常我们会这样:

str = ''
for i in range(10):
    str += 'Python'
print(str)
# PythonPythonPythonPythonPythonPythonPythonPythonPythonPython

其实,优雅的方式只需一行:

print('Python'*10)
# PythonPythonPythonPythonPythonPythonPythonPythonPythonPython
带分隔符打印
print('123', '234', 100, sep='x')
# 123x234x100

还有另外一种方式:

print('x'.join(['123', '234', '100']))
# # 123x234x100
变量交换
d1 = 34
d2 = 23
d1, d2 = d2, d1
print(d1, d2)
# 23 34
字符串变小写
mylist = ['ABCD', 'Python', 'I am Chinese']
print([data.lower() for data in mylist])
# ['abcd', 'python', 'i am chinese']
统计列表中元素出现频率
import collections
mylist = [10, 11, 12, 3, 3, 11, 11, 33]
print(dict(collections.Counter(mylist)))
# {10: 1, 11: 3, 12: 1, 3: 2, 33: 1}
更新字典
mydict = {1: 'Python', 2: 'Javascript', 3: 'Java', 4: 'C#'}
mydict.update({2: 'C'})
print(mydict)
# {1: 'Python', 2: 'C', 3: 'Java', 4: 'C#'}
mydict.update({5: 'Svelte'})
print(mydict)
# {1: 'Python', 2: 'C', 3: 'Java', 4: 'C#', 5: 'Svelte'}
非 Pandas 方式读取 csv 文件
import csv 
with open('Test.csv', 'r') as f:
    read = csv.reader(f)
    print([r for r in read])

总结

好了,这些代码片段需要好好消化,方能事半功倍!大家还有没有其他的简洁高效代码片段,留言区发出来!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚务实的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值