亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在python中將for循環轉換為列表理解

如何在python中將for循環轉換為列表理解

搖曳的薔薇 2021-10-19 16:18:37
我有一個嵌套的 for 循環,我想將它轉換為 python 中的列表理解。我怎樣才能做到這一點all_combinations = []for i in range(0,size):    for j in range(i,size):        if i!=j:            all_combinations.append((i,j))
查看完整描述

3 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

所有其他答案都回答了您的問題,但我想建議一個更好的選擇itertools.combinations:


from itertools import combinations


print(list(combinations(range(3), 2)))

# [(0, 1), (0, 2), (1, 2)]

為什么更好?


沒有重復。我們range(3)只指定一次。

它經過測試,標準庫代碼。

更短,更易讀。

(如果使用 CPython,你可能是)它是用 C 實現的,這意味著它(通常)比嵌套的 Python 循環更快。


查看完整回答
反對 回復 2021-10-19
?
米琪卡哇伊

TA貢獻1998條經驗 獲得超6個贊

all_combinations = [(i,j)  for i in range(size) for j in range(i,size) if i!=j]


查看完整回答
反對 回復 2021-10-19
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

為什么不只是

all_combinations = [(i,j)  for i in range(size) for j in range(i+1,size) ]

不需要 if 測試,因為這永遠不會包括 (i,i)


查看完整回答
反對 回復 2021-10-19
  • 3 回答
  • 0 關注
  • 289 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號