Python map()函数
为什么在下面的代码中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: '-' 回溯(最近一次呼叫最后一次
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、 附加
如果sint(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)