2017-04-17 94 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]会输出你想要的。

相关问题