我正在尝试将列表中的元素转移到另一个列表中。我在问有多少数字会被转移到列表b中,但显示出错误

2024-05-26 14:20:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将元素从列表a转移到列表b,我询问要转移多少个数字。它显示了以下错误:

'<=' not supported between instances of 'NoneType' and 'int'

我的工作还没有完成

a = [2,4,6,8,10,12]
b = []
transfer = int(input("how many numbers would you like to transfer:?"))
for i in a:
    if transfer == 1: 
        b.append(i) <= 2
print(b)

我希望2号会在b列表中传输


Tags: andofinstances元素列表input错误not
2条回答

b.append(i)返回None。因此,比较b.append(i) <= 2会产生一个错误。如果您想根据列表的长度编写代码,可以使用len(b)。比如:

for i in a:
    if len(b) < transfer:
        b.append(i)
    else:
        break

或者您可以这样做:

b = a[:transfer]

这将只使用旧列表a^{}作为新列表b

  1. 首先在将输入转换为int时,应该防止出错。有两种方法可以做到这一点

    1. 试试。。除了声明

      transfer = -1
      while transfer < 0:
          try:
              inp = input("how many numbers would you like to transfer:?")
              transfer = int(inp)
          except:
              print("Invalid input.")
      
    2. ^{}

      transfer = -1
      while transfer < 0:
          inp = input("how many numbers would you like to transfer:?")
          if inp.isdecimal():
              transfer = int(inp)
          else:
              print("Invalid input.")
      
  2. 现在谈谈主要任务。有三种方法可以解决这个问题

    1. For循环使用^{}

      for i, el in enumerate(a):
          if i < transfer:
              b.append(el)
          else:
              break
      
    2. 列表理解:

      b = [el for i, el in enumerate(a) if i < transfer]       
      
    3. 列表切片:

      b = a[:transfer]
      

相关问题 更多 >

    热门问题