天天看點

Python 一些實用、快捷的小方法

format()

# V3.6及之後, foramt()函數簡寫
a = '信仰'
b = f"缺一個{a}"
           

eval()

# 傳入一個字元串,可執行字元串中的内容
import requests

def req_url(url, req_type):
	req_func = f"requests.{req_type}(url)"  # 這個地方可以将requests庫下的某個方法當成參數傳入,減少代碼邏輯
	response = eval(req_func)
	
url = 'https://www.baidu.com'
req_url(url, 'get')
req_url(url, 'delete')
           

all()

# 如果可疊代對象中含有空或0,傳回False
# 部分情況下,可以省略一個for循環,很Nice!
a = [1,2,3,4]
all(a)

True
           

map()

map(functin, iterable)
# 魔法函數之一
# 傳入函數和可疊代對象,可以自動周遊可疊代對象中的所有值,傳回疊代器
# 部分情況下,又可以少寫一個for循環,美滋滋
def a(b):
	return b ** b

c = [1,2,3,4]
# for i in c:
#	a(i)
d = map(a, c)
d = list(d)

d = list(map(lambda b: b ** b, c))  # ^_^|| 少些好幾行代碼
           

dict() + zip()

# 将兩個可疊代對象拼成一個字典,例如之前的使用xlrd讀取Excel時
sheet, rows = tools.read_excle('file_path', sheet_index)  # 自封裝的讀取Excel,傳回表對象和總行數
key_list = sheet.row_values(0)  # 表頭
data_list = []
for row in range(1, rows):
	row_data = sheet.row_values(row)  # 表資料
	new_data = dict(zip(key_list, row_data))  # 新字典
	data_list.append(new_data)

data_list = list(map(lambda a: dict(zip(k_list, a)), (sheet.row_values(row) for row in range(1, rows))))  # 直接減輕了對鍵盤的傷害
           

sorted()

# 排序, 直接改變目前的可疊代對象,不用再指派給新的變量
sorted([5,4,6,3,7,2], reverse=True)  # 倒排

[7, 6, 5, 4, 3, 2]