将整数逐步添加到列表

时间:2019-02-12 15:43:58

标签: python list for-loop concatenation

这是一个while循环,我需要将log变量(最新变量)添加到列表中。我不知道该怎么做。

我将添加5和7的倍数的每个数字(即x % 7==0x % 5==0)添加到我要在末尾声明的列表中。

但是如何?

-

“此程序是关于查找1500和2700之间的每个数字          (含),可被5和7整除。

x=1500
for x in range(1500,2701):
    if x % 7==0 and x % 5==0:
        print("\n", x,"IS DIVISIBLE\n")
        x=x+1
        #I THINK THE LIST STUFF GOES HERE

    else:
        print(x,"is not a common multiple")
        x=x+1

input()

基本上,我只想将x变量(可以被7和5整除)(每次循环运行)添加到列表中。例如。 1505、1540等

5 个答案:

答案 0 :(得分:1)

如果您要提高效率,请先做一些数学运算:

  1. 57本身是素数 1 ,因此,当且仅当从其乘积中可将其整除时,该数字才能被两者整除。
  2. 找到第一个满足点1的数字后,只需继续添加35,直到达到范围的末尾。请注意,您知道您的范围内将有多少这样的数字!

现在输入代码:

first = next(x for x in range(1500, 2701, 5) if x % 35 == 0)
res = [first + 35*i for i in range((2701-1-1500)//35 + 1)]

产生:

[1505, 1540, 1575, 1610, 1645, 1680, 1715, 1750, 1785, 1820, 1855, 1890, 1925, 1960, 1995, 2030, 
 2065, 2100, 2135, 2170, 2205, 2240, 2275, 2310, 2345, 2380, 2415, 2450, 2485, 2520, 2555, 2590, 
 2625, 2660, 2695]

这比任何基于 if 的方法都要快。


就您的代码问题而言,其他答案和注释已对它进行了全面讨论,因此我不再赘述。


1 ,一般来说,这与之无关

答案 1 :(得分:0)

创建列表变量:

foo_list = []

之后,您所要做的就是在循环的最后将值添加到列表中

foo_list.append(<your variable>)

所以在您的代码上看起来像这样:

my_list = []
x=1500
for x in range(1500,2701):
    if x % 7==0 and x % 5==0:
        print("\n", x,"IS DIVISIBLE\n")
        my_list.append(x)
    else:
        print(x,"is not a common factor")

如您所见,x+=1已删除,循环正在为您完成!

正如某些人指出的那样,如果您只是对获取列表感兴趣,而如果数字是一个公共因素,则不希望打印此列表,则可以使用列表理解,如下所示:

my_list= [x for x in range(1500, 2701) if x%5==0 and x%7==0]

答案 2 :(得分:0)

满足条件后,您无需增加Authorized Customer Signature,因为x生成器会为您处理。

您很亲密:

range

您也可以在列表理解中执行此操作,以提高速度:

somelist = []

for x in range(1500, 2701):
    if x%5==0 and x%7==0:
        somelist.append(x)
    # You don't need an else block as the loop will just continue

答案 3 :(得分:0)

result =[]    
for x in range(1500,2701):
        if x % 7==0 and x % 5==0:
            result.append(x)    
        else:
            print(x,"is not a common factor")
            x=x+1

答案 4 :(得分:0)

my_list = []
for x in range(1500,2701):
    if x % 7==0 and x % 5==0:
        print("\n", x,"IS DIVISIBLE\n")
        my_list.append(x)
            #I THINK THE LIST STUFF GOES HERE


    else:
        print(x,"is not a common factor")
print(my_list)