Python map()函数

Python map()函数,python,map-function,Python,Map Function,为什么在下面的代码中map()函数出现错误?为什么不能映射转换列表中的负数x。输出应类似于“1-->2-->3”。只要我输入-999,列表就会结束。我收到一个错误,例如: Traceback (most recent call last): File "c2.py", line 3, in <module> x=map(int,x) ValueError: invalid literal for int() with base 10: '-' 回溯(最近一次呼叫最后一次

为什么在下面的代码中map()函数出现错误?为什么不能映射转换列表中的负数
x
。输出应类似于“1-->2-->3”。只要我输入
-999
,列表就会结束。我收到一个错误,例如:

Traceback (most recent call last):
  File "c2.py", line 3, in <module>
    x=map(int,x)
ValueError: invalid literal for int() with base 10: '-'
回溯(最近一次呼叫最后一次):
文件“c2.py”,第3行,在
x=映射(int,x)
ValueError:以10为底的int()的文本无效:'-'
代码:

while(1):
x=列表(原始输入(“输入一个数字\n(键入-999结束);”)
x=映射(int,x)
如果x尝试


没有解决与map无关的其他bug,问题是map返回一个列表

在空闲时检查它:

>>> map(int, ["123", "456", 7.3])
[123, 456, 7]
>>>
所以
x谢谢你。。。明白了:)

x=[]
而(一):
s=原始输入(“输入一个数字\n(键入-999结束);”)
s=int(s)
x、 附加

如果s
int(x)
确实将
x
转换为整数,则不需要
map
;但如果
x
是一个列表,则不是。因此,您还应该删除第二行的
列表
调用。输入应该采用什么格式<代码>“1234-999”
在一行上,还是单独输入?请注意,
list(“-999”)=['-','9','9','9']
。由于
raw\u input
返回字符串,
list(raw\u input(…)
将该字符串拆分为包含原始字符串字符的列表。
pass
仅当它是块中的唯一语句时才需要。好,现在x将是整数列表,这至少消除了OP的
ValueError
。但是他会进入一个无限循环,因为
x<0
的计算结果总是
False
。或者,如果他在3中尝试,他会得到
TypeError:unorderable types:list()
。如果你自己不回答,以后,在原帖的横栏下编辑类似的内容。否则,人们将继续回答您的问题。@JonJayObermark see-答案应该是答案,如果其他用户认为可以进一步改进OP,欢迎他们尝试。对不起。这是奇怪的礼节,但我想这是当地的规矩。(我确实看到了我一直建议在这里做的事情,我个人对此表示赞赏。)如果这是答案,至少需要对所述问题进行编辑,因为答案与OP中的实际问题或标题无关。
x = map(int,raw_input().split())
>>> map(int, ["123", "456", 7.3])
[123, 456, 7]
>>>
    x=[]
    while(1):
       s=raw_input("Input a number\n(type -999 to end);")
       s=int(s)
       x.append(s)
       if s<0:
          break
       pass
    print "\n%d" %(x[0]),
    for i in range(1,(len(x))):
        print "-->%d" %(x[i]),
    print "\n\nNumber of items = %d" %(len(x)-1)