前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python中简明的小tips

python中简明的小tips

作者头像
生信编程日常
发布2020-07-15 16:14:13
3660
发布2020-07-15 16:14:13
举报
1. 大数中的下划线
ten_billion = 10_000_000_000
print(f"{ten_billion:,}")

可输出: 10,000,000,000 这样看起来更加清晰了。

2. 交换数值
a, b = 1,2
a, b = b, a

这个估计很多人都知道,这是个很python的写法,在其他不少语言中都是错误的。

3. for-else
a = 11
for i in range(10):
    if i == a ** 2:
        print(i)
else:
    print('Not include!')

for-else一般用于遍历失败的情况,在循环完整结束后才执行else;如果中途从break跳出,则连else一起跳出。

4. sys.getsizeof
import sys
L = range(0, 10000)
print(sys.getsizeof(L))

我们可以得到占用了多少内存。另外,range的内存占用比一个真正的列表要少的多。比如上面代码返回48,但是使用列表的话会返回87624。

import sys
L2 = [i for i in range(0, 10000)]
print(sys.getsizeof(L2))
5. 合并列表
d1 = { 'a': 1, 'b': 2 }
d2 = { 'b': 3, 'c': 4 }
merged_d = { **d1, **d2 }
print(merged_d)

返回:{'a': 1, 'b': 3, 'c': 4}。假如两个列表有重复的话,第一个字典key对应的value会被覆盖。

6. 返回频率最高的元素
test = [1, 2, 3, 4, 2, 2, 3, 1, 4, 4, 4]
print(max(set(test), key = test.count))
7. 得到小数数列
import numpy as np
print(np.arange(0, 1, 0.1))

range()函数只能得到整数数列,因此,可以考虑用numpy库中的arrange来实现。

8. 字典排序

根据key排序:

x = {'u': 4, 'w': 2, 'v': 1}
new_x = dict(sorted(x.items()))

返回:{'u': 4, 'v': 1, 'w': 2}。

根据value排序:

# 升序
 dict(sorted(x.items(), key=lambda item: item[1]))
# 降序
 dict(sorted(x.items(), key=lambda item: item[1]), reverse=True)
9. 转置
x = [(1, 2, 4), ('u', 'v', 'w')]
new_x = list(zip(*x))

返回: [(1, 'u'), (2, 'v'), (4, 'w')]。 虽然大部分时候会第一选择numpy,不过zip也可以实现。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 大数中的下划线
  • 2. 交换数值
  • 3. for-else
  • 4. sys.getsizeof
  • 5. 合并列表
  • 6. 返回频率最高的元素
    • 7. 得到小数数列
    • 8. 字典排序
    • 9. 转置
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档