0
在下面的示例中的單線程或for循環之間的性能是否有任何差異?下面是一個代碼片段,我用做的東西:何時使用循環與單線程
# convert to integer, subtract 1, and change to 0 if number is < 0
tile_ids = map(lambda x: max(int(x)-1, 0), child[0].text.split(','))
是更好地做到這一點,或寫出這樣的:同樣
for tile_id in child[0].text.split(','):
tile_id = int(tile_id) - 1
if tile_id < 0:
tile_id = 0
,有沒有理由使用一個比其他?
第三種選擇,中景:'tile_ids = MAX(INT(X) - 1,0),用於兒童[0]的.text X。 split(',')]' –
列表解析更快。如果它們可以放在一行上,可以通過'for'循環選項使用它們,否則首先考慮可讀性並使用循環。帶有'lambda'的'map()'通常比較慢(爲所有的map調用創建了大量的函數框架)。當你有一個本地函數/方法時使用'map()'。 –
您可以使用['timeit'](https://docs.python.org/3/library/timeit.html)模塊查找自己的表現差異。至於比其他人更喜歡的原因,第二個的可讀性對我來說是一個足夠好的理由。 –