循环 - 如何将所有元素放入列表中

时间:2017-10-02 11:43:51

标签: python loops

问题在于

import math
f = 5.1
k = (math.ceil(f))
for num in range(k, 30):
    if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
        print (num)

然后结果是

7
11
17                                                                              
19                                                                              
23                                                                              
29                                                                              
None 

那么,如何将这些元素放入列表中?就像

list = [ 7, 11, 13, 17, 19, 23, 29, "None" ] 

因为我只想用这种方式打印列表的第一个元素:

for i in x[:1]:
    print (i)
7

或者还有其他方法可以解决吗?

3 个答案:

答案 0 :(得分:1)

在代码中你正在进行打印,你可以添加一行来附加到列表中。只需在循环外创建一个列表,然后附加到它。像这样:

import math
your_list = [] # the new list you are going to use
f = 5.1
k = (math.ceil(f))
for num in range(k, 30):
    if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
        print (num)
        your_list.append(num) # append the num to your list

如果您仍然希望收集所有数字,但是当您的计算完成后,您只想打印列表中的第一个元素,只需在循环外调用print。所以你的代码现在看起来像:

import math
your_list = [] # the new list you are going to use
f = 5.1
k = (math.ceil(f))
for num in range(k, 30):
    if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
        print (num)
        your_list.append(num) # append the num to your list
print(your_list[0])

答案 1 :(得分:0)

要添加到list,您必须首先创建list,然后append。 您可以使用[i]获取所需索引的值

myList = list() # Alternatively, myList = []

for i in range(0, 30):
    myList.append(i)

print(myList[0])

答案 2 :(得分:0)

一些额外的点是math.ceil返回float,所以它应该涂有int。无需使用for循环打印它。

import math
f = 5.1
required_list = []
k = int(math.ceil(f))
for num in range(k, 30):
    if all(num%i!=0 for i in range(2,int(math.sqrt(num))+1)):
        required_list.append(num)

print required_list[0]