2017-08-12 29 views
-2

我知道這可能是一個很基本的問題,但讓我們說,我有一個數組:使用數組,並在其中存儲值

array = [23,43,54,12,29,65] 

,然後我提示用戶鍵入兩個整數這將是範圍:

u1 = 12 
u2 = 55 

所以現在,我想要做的就是從那個是u1u2邊界內的陣列打印出來的值。這種情況下,這將是:

[23,43,54,12,29] 

但是我面對現在的問題是我不能當它涉及到打印出的輸出使用追加。代碼:

lst = [23,43,54,12,29,65] 
u1 = 12 
u2 = 55 

def valRange(input1,input2,l): 
    result = [] 

    n = len(l) 
    i = 0 
    upper = input2 
    lower = input1 
    while i<n: 
     if (lower<=l[i]<=upper): 
      result.append(l[i]) 
     i+=1 
    return result 

print(valRange(u1,u2,lst)) 

代碼工作和打印出完美。問題是我不應該使用result = []append(),因爲我將翻譯成彙編代碼。在沒有使用append的情況下,是否有其他方法可以打印包含l[i]的數組?

+0

您可以使用列表理解'[如果LOWER_BOUND Pythonista

+0

@Pythonista這是一個列表的理解,而不是一個單子(?) – Tomalak

+0

Python的名單是不完全與彙編代碼中的數組相同,並且如果不能使用標準列表操作(例如'append'),那麼預期如何使用它們並不明顯。你的家庭作業是否告訴你你可以使用哪些操作? – Blckknght

回答

0

你也許應該排序你的數組,然後找到較低的索引和較高的索引。

您的較低指數是第一個價值,您的下限>上限指數相同,除了它的上限爲<。

最後在這兩個索引之間切片你的數組。

slice = lst[lower:upper] 
print(slice) 
相關問題