簡體   English   中英

Python - 使用 for 循環構造集

[英]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。 但我發現這個很棒的視頻我認為它很好地解釋了不同類型的理解。

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM