python風格程式碼薈萃

2020-10-03 11:00:13

今天總結一下在python中常用的一些風格程式碼,這些可能大家都會用,但有時可能也會忘記,在這裡總結,工大家參考~~~

先點贊在看,養成習慣~~~

標題遍歷一個範圍內的數位

for i in xrange(6):
    print i ** 2

xrange會返回一個迭代器,用來一次一個值地遍歷一個範圍,這種方式比range更省記憶體。在python3中xrange已經改名為range。

遍歷集合

colors = ['red', 'green', 'blue', 'yellow']
for color in colors:
    print color

反向遍歷集合

for color in reversed(colors):
    print color

遍歷集合及其下標

for i, color in enumerate(colors):
    print i, '-->', color

遍歷兩個集合

names = ['raymond', 'rachel', 'mattthew']
colors = ['red', 'green', 'blue', 'yellow']
for name, color in izip(names, colors):
    print name, '-->', color

zip在記憶體中生成一個新的列表,需要更多的記憶體,izip比zip效率更高。在python3中,izip改名為zip,替換了原來的zip成為內建函數。

有序遍歷

colors = ['red', 'green', 'blue', 'yellow']
for color in sorted(colors):
    print color
for color in sorted(coloes, reverse = True):
    print color

自定義排序順序

colors = ['red', 'green', 'blue', 'yellow']
print sorted(colors, key=len)

列表解析和生成器

print sum(i ** 2 for i in xrange(10))

在迴圈內識別多個退出點

def find(seq, target):
    for i, value in enumerate(seq):
        if value == target:
            break
    else:
        return -1
    return i

分離臨時上下文

with open('help.txt', 'w') as f:
    with redirect_stdout(f):
        help(pow)

上述程式碼用於演示如何臨時把標準輸出重定向到一個檔案,然後再恢復正常。注意redirect_stdout在python3.4加入。

開啟關閉檔案

with open('data.txt') as f:
    data = f.read()

使用鎖

lock = threading.Lock()
with lock:
    print 'critical section 1'
    print 'critical section 2'

用字典計數

colors = ['red', 'green', 'red', 'blue', 'green', 'red']

d = {}
for color in colors:
    d[color] = d.get(color, 0) + 1

d = defaultdict(int)
for color in colors:
    d[color] += 1

資源傳送門

  1. 關注【做一個柔情的程式猿】公眾號
  2. 在【做一個柔情的程式猿】公眾號後臺回覆 【python資料】【2020秋招】 即可獲取相應的驚喜哦!

「❤️ 感謝大家」

  • 點贊支援下吧,讓更多的人也能看到這篇內容(收藏不點贊,都是耍流氓 -_-)
  • 歡迎在留言區與我分享你的想法,也歡迎你在留言區記錄你的思考過程。