我有一长串需要作为整数传递到函数中的刺。我在做什么现在的问题是:解压缩列表并同时投射
my_function(int(list[0]), int(list[1]), int(list[2]), int(list[3])...)
但我知道我可以通过拆包列表中进行更短的函数调用:
my_function(*list)
我在想,如果有办法int()
铸造相结合的方式与清单拆包*
,这样的事情:
my_function(*int(list)) #Doesn't work
我有一长串需要作为整数传递到函数中的刺。我在做什么现在的问题是:解压缩列表并同时投射
my_function(int(list[0]), int(list[1]), int(list[2]), int(list[3])...)
但我知道我可以通过拆包列表中进行更短的函数调用:
my_function(*list)
我在想,如果有办法int()
铸造相结合的方式与清单拆包*
,这样的事情:
my_function(*int(list)) #Doesn't work
使用内置方法map
,例如,
my_function(*map(int, list))
或者,尝试列表理解:
my_function(*[int(x) for x in list])
BTW:
请不要使用list
作为名称的局部变量,这将隐藏内置方法list
。
为变量名称附加下划线是常见用法,否则会隐藏内置方法/与关键字冲突。
非常好。不知道这个,谢谢! – BloonsTowerDefence
这是Python中的好东西之一。当你了解它时,你会说“哇”,当你不得不回到没有这些功能的语言时,你会说“#@ + *%&”。所以要为此做好准备。 –
映射是答案:
map(int, my_list)
你的最后一行非常接近tho' - 你只需要在列表“int”中列出所有的值,这就是@Thorsten中出现的“map”的位置。 – sotapme