[英]A Function take 'N' as argument, performs an Increase N times of Elements then decrease (N-1) times and then return as a list in the Python
問題是,假設我將'N' = 9傳遞給 function,
所以列表將是 list = [1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1]。 起初,列表元素增加到(1-9)然后它減少到相反的順序(8-1)
請提出實現這一目標的最簡單方法。 先感謝您。
list(range(1, 1+N)) + list(range(N-1, 0, -1))
您可以使用列表理解在一行中實現。 首先,我們有一個列表推導式,它有一個簡單的循環,將數字從 1 附加到n
。 第二個是列表理解,其中 for 循環中的數字通過等式(n+1)-i
傳遞。 這是為了計算i
和n+1
的當前值之間的差異。 這給了我們遞減數字的模式。 最后,兩個列表都被添加並存儲在變量r
中。
r = [x for x in range(1,n+1)] + [n+1-i for i in range(2, n+1)]
當r
被打印出來時,它會產生以下 output。
[1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1]
一種簡單的方法是使用從 -8 到 8 的范圍和 output 與 9 的差異(忽略符號):
N = 9
print([N-abs(i) for i in range(1-N,N)])
[1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1]
range(1-N,N)
將生成:
-8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8
絕對值將是:
8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8
與 9 的區別
9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
8, 7, 6, 5, 4, 3, 2, 1, 0, 1, 2, 3, 4, 5, 6, 7, 8 -
-------------------------------------------------
1, 2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3, 2, 1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.