im试图从列表a转移元素到列表b,然后询问我想传输多少个数字。它显示了此错误:
'< =''nontype'和'int'
之间不支持
ps。我的工作尚未完成
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)
im期望该数字2将在B列表中转移
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]
这只会将旧列表的slice
a
用作新列表b
。
-
首先,当将输入转换为int时,应防止错误。有两种方法可以做到这一点。
-
尝试..除语句。
transfer = -1 while transfer < 0: try: inp = input("how many numbers would you like to transfer:?") transfer = int(inp) except: print("Invalid input.")
-
isdecimal()
。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.")
-
-
现在关于主要任务。有3种方法如何解决。
-
用于使用
enumerate()
的循环。for i, el in enumerate(a): if i < transfer: b.append(el) else: break
-
列表理解:
b = [el for i, el in enumerate(a) if i < transfer]
-
列表切片:
b = a[:transfer]
-