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))
这是我到目前为止所写的内容。如何安排或修改我的代码,以便我得到[&#39; p&#39;&#39; q&#39;]&#39;印?截至目前,没有任何内容打印到控制台,也没有任何错误告诉我我做错了什么。
答案 0 :(得分:3)
您需要增加i
变量,如下所示:
i = i + 1
i
的新值应分配给i
。
答案 1 :(得分: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']
答案 2 :(得分:1)
您可以直接切片original_list
。请参阅more on lists。
In [2]: original_list[:2]
['p', 'q'] #result
答案 3 :(得分: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]
会输出您想要的内容。
答案 4 :(得分:0)
while
中有一个无限循环,因为你只有i + 1
,没有作业。
应该是:i = i + 1
。
此外,您可以使用切片:
def make_new_list(n, old_list):
return old_list[:n]