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.csdn.net/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)