【问题标题】:I have know idea how this is appending my list我知道这是如何附加我的列表的
【发布时间】:2022-11-15 09:01:16
【问题描述】:

我列出了从 0 到 500 的所有数字,然后我正在寻找以某个整数结尾的所有数字。问题是我不明白它是如何工作的。

我是编码新手,所以不知道这里会发生什么或它是如何工作的。

x = 0
y = []
while x <= 500:
    y.append(x)
    x = x + 1

a = 0
b = []
c = 0
# if i remove c from this or change c from 0 to 1 or any other number it just appends with that value
# but if c is as i have it, it some how appends the list with the values i am pulling with my if statment
while a <= 500:
    if int(repr(y[a])[-1]) == 0:
        b.append(c) 
    a = a + 1
    c = c + 1

    

print(len(b))
print(b)

【问题讨论】:

  • 不需要 c,它始终与 a 相同。所以只需使用b.append(a)
  • 要获取数字的最后一位,请使用 y[a] % 10
  • 你的实际问题是什么? “我不明白它是如何工作的”太含糊了。没看懂怎么写的,随便乱码拼凑就走运了?
  • 如果您更改c,那么您添加到列表中的数字将从您想要的数字偏移ca之间的差异,因为您正在测试a但附加c,并且他们是不同的。

标签: python


【解决方案1】:

简短的回答是

c = 0
b = [x for x in range(501) if x % 10 == c]
print(len(b))
print(b)

【讨论】:

    【解决方案2】:
    • for循环在定义循环开始和结束时优于while循环。 所以你可以使用这段代码来制作 y 列表:
    y = []
    for i in range(501):
      y.append(i)
    

    较短的代码是:

    y = [i for in range(501)]
    
    • 要找到数字的正确数字,您% 10

    • 对于列表中的循环,您可以使用for each_item in your_list:

    • 在第二个循环中 ac 是相同的,所以你可以使用其中之一:

    c = 0
    b = []
    
    for a in y:
      if a % 10 == c:
        b.append(a)
    

    较短的代码是:

    b = [a for a in y if a % 10 == c]
    
    • 您可以在创建列表的位置过滤数字,因此您可以仅在一个循环中合并 2 个循环(忽略 make y list):
    c = 0
    b = []
    for a in range(501):
      if a % 10 == c:
        b.append(a)
    

    较短的代码是:

    c = 0
    b = [a for a in range(501) if a % 10 == c]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-24
      • 1970-01-01
      相关资源
      最近更新 更多