[英]Python - construct set with for loop
在 leetcode 上看到了這段代碼,但不明白它的作用或工作原理。 Paths 是一個列表列表。
def solution(paths):
s = set(p[0] for p in paths)
好的,不確定您指的是代碼的哪一部分。
def solution(**paths**): #1
s = set(p[0] for p in paths) #2
#1 創建一個名為 solution 的函數,它接受一個參數(路徑)
#2 為變量s分配一個集合。
set()是一個創建集合對象的函數。
p[0]是您想要從 forloop 中獲得的項目。 並且您正在獲取路徑中每個集合中的第一個變量
它也可以解釋為:
def solution(paths):
s = {} # declare variable
for item in path: # use forloop
s.add(item[0]) #add the first element of each item in path (the set in path)
print(s)
test_path = [ ['a','b','c'] , ['a','e','f'], ['g','h','i'] ]
solution(test_path)
請注意,在下面打印的結果中,只添加了一個“a”,因為一個集合只有唯一的變量
>>>{'g', 'a'}
您可以對列表理解進行一些研究。 我自己幾個月前才開始學習 Python。 但我發現這個很棒的視頻我認為它很好地解釋了不同類型的理解。
p 是一個列表,並且 p[0] 獲取子列表中的第一項,並將其添加到一個集合中(即刪除重復項)。
例如,如果paths = [[1,2,3] , [1,3,4], [2,3,4]]
s = {1, 2}
請注意,該函數不返回任何內容,因為它沒有“返回”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.