簡體   English   中英

列表理解和循環

[英]List Comprehensions and Loops

我目前在Hackerrank上經歷了不同的Python3挑戰,遇到了這個使我措手不及的問題。 我找到了解決方案,但我無法確定如何解決問題。 我熟悉python中的循環,但是我似乎無法逐步跟蹤代碼。

問題

您將獲得三個整數X,Y和Z以及一個整數N ,它們分別表示一個長方體的尺寸。 您必須在3D網格上打印出的所有可能坐標的列表,其中的總和不等於N。

輸入格式

四個整數X,Y,Z和N分別位於四行中。

約束

按字典順序升序打印列表。

樣本輸入

1
1
1
2

樣本輸出

[[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]

x, y, z, n = (int(input()) for _ in range(4))
print([[a, b, c] for a in range(x+1) for b in range(y+1) for c in range(z+1) if a + b + c != n])

讓我們考慮一下列表推導如何工作。

您發布的列表理解類似於以下循環:

l = []
for a in range(x):
    for b in range(y):
        for c in range(z):
            if a+b+c!= n:
                l.append([a,b,c])
print(l)

因此,我們遍歷abc的所有可能值,並找到滿足我們條件的三元組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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