Python 常用小技巧(持续更新)

本文介绍了Python中的一些实用技巧,包括any()和all()函数的使用、判断列表是否为空、使用enumerate和zip函数进行便利操作、创建字典列表生成式、字符串处理、内存使用量的检查、列表推导式的高级应用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、python any()和all()用法

# any() 如果有一个不为空则返回True
# all() 全部不为空才返回True
print(any([1, "123", False]))
# True
print(any([0, "", False]))
# False
print(all([1, "123", True]))
# True
print(all([1, "123", False]))
# False

2、判断列表空数据

a = True if [] else False
print(a)
# False

3、遍历同时获取索引

经常会遇到遍历列表同时需要获取当前索引序号的场合,一般我们是按长度生成range/xrange索引来访问,实际上python提供了enumerate函数,它会返回包装后的迭代器,每次调用同时返回当前索引和值,如下:(参考:https://blog.youkuaiyun.com/wenzhou1219/article/details/81274610

l1 = [11, 22, 30, 41, 51]
# 不推荐
for i in range(0, 5):
    print("%s->%s" % (i, l1[i]))
# 推荐
for i, v in enumerate(l1):
    print("%s->%s" % (i, v))

4、同时遍历多个列表

python提供了zip函数,它会返回包装后的迭代器,每次调用同时返回每个列表的值,如下:

l1 = [11, 22, 30, 41, 51]
l2 = ["a", "bb", "c", "d", "ee"]
for v1, v2 in zip(l1, l2):
    print("%s->%s" % (v1, v2))

5、字典列表生成式

l1 = [11, 22, 30, 41, 51]
l2 = ["a", "bb", "c", "d", "ee"]
dict2 = {v1: v2 for v1, v2 in zip(l1, l2)}
print(dict2)
# {11: 'a', 22: 'bb', 30: 'c', 41: 'd', 51: 'ee'}

6、移除字符串末尾无用的字符

print(" good//".strip())
# good//
print(" good//".strip("/"))
#  good

7、检查对象的内存使用量

import sys
print(sys.getsizeof("123"))
print(sys.getsizeof(dict()))
# 52
# 240

(8、9、10参考链接:18 种方法来优雅你的 Python

8、含if的列表推导式:[... for .... in ... if ... ]

print([i for i in range(100) if i % 10 == 0])
# [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

9、显示循环进度 - 不刷屏

i, n = 0, 100
for i in range(n):
    time.sleep(0.1)
    if (i+1) % 10 == 0:
        print(i+1, end="\r")

10、定义 progress_bar 函数,直观显示进度条

def progress_bar(num, total):
    rate = float(num)/total
    raternum = int(100*rate)
    r = '\r[{}{}]{}%'.format('*'*raternum, ' '*(100-raternum), raternum)
    sys.stdout.write(r)
    sys.stdout.flush()


i, n = 0, 100
for i in range(n):
    time.sleep(0.05)
    progress_bar(i+1, n)

11、

12、

13、

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值