2017-04-17 76 views
-1
original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
#makes smaller list of n values, sampling from original list 
def make_new_list(n, old_list): 
    new_list = [] 
    i = 0 
    while i < n: 
     new_list.append(old_list[i]) 
     i + 1 
    return new_list 

print(make_new_list(2, original_list)) 

這是我迄今爲止寫的。如何安排或修改我的代碼,以便打印'['p','q']'?到目前爲止,沒有任何東西會打印到控制檯,也沒有任何錯誤顯示告訴我我做錯了什麼。沒有錯誤打印,沒有輸出,我怎麼有「['p','q']」打印?

+1

original_list [:2]? – manvi77

+0

遞增i。要麼'i = i + 1'或'i + = 1' – Himaprasoon

+0

@ manvi77謝謝。請將此作爲答案提交。 –

回答

0

您在while中有無限循環,因爲您只有i + 1,沒有賦值。

應該是:i = i + 1

此外,您還可以使用切片此:

def make_new_list(n, old_list): 
    return old_list[:n] 
3

你需要增加i變量是這樣的:

i = i + 1 

i新的價值應該被分配到i

1

在問候你的代碼,我建議這個編輯:

original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
def make_new_list(n, old_list): 
    new_list = old_list[:n] 
    return new_list 
print (make_new_list(2, original_list)) 

您可以切片一個列表,像這樣:

original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
new_list = original_list[:2] 

打印:

['p', 'q'] 

或從端:

original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
new_list = original_list[2:] 

打印:

['r', 'x', 't', 'l', 'z', 'y', 'x', 'a', 'b'] 

或扭轉的列表:

original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
new_list = original_list[::-1] 

打印:

['b', 'a', 'x', 'y', 'z', 'l', 't', 'x', 'r', 'q', 'p'] 

或反向切片:

original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
new_list = original_list[:-2] 

打印:

['p', 'q', 'r', 'x', 't', 'l', 'z', 'y', 'x'] 

再次逆轉,雖然有點多餘:

original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
new_list = original_list[-2:] 

打印:

['a', 'b'] 

或獲得元素不在開始:

original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
new_list = original_list[2:4] 

打印:

['r', 'x'] 
1

您可以直接切片original_list。請參閱more on lists

In [2]: original_list[:2] 
['p', 'q'] #result 
1

看起來像你想要做的只是這一點。

original_list = ['p','q','r','x','t','l','z','y','x','a','b'] 
print(original_list[:2]) 

其輸出['p', 'q']

Python的數組索引開始在0因此輸出['p']我們需要說original_list[0],並獲得['q']1

由於它是一個數組,您可以從第一個索引0獲取數據,然後在3索引2之前停止。 orignal_list[0:2]會輸出你想要的。