Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串数组转换为数字_Python - Fatal编程技术网

Python 将字符串数组转换为数字

Python 将字符串数组转换为数字,python,Python,我有一个数组=[“3”、“5”、“3”、“1”]。如何将python中除“”以外的所有内容转换为数字?在一行中必须为None 我尝试过这样的方法:[float(num)for num in array if num!=“num”,但是跳过了它。”列表中for语句右侧的是一个过滤器表达式 无论发生什么,您都希望发出一个值,因此您不需要过滤器,而是需要一个三元表达式: (您可以省略num!=”,因为num是一个字符串,而不是一个浮点或整数,所以它是等效的且更短) 其结果是: [3.0, 5.0, 3

我有一个
数组=[“3”、“5”、“3”、“1”]
。如何将python中除“”以外的所有内容转换为数字?在一行中必须为None


我尝试过这样的方法:
[float(num)for num in array if num!=“num”
,但是跳过了它。”

列表中
for
语句右侧的是一个过滤器表达式

无论发生什么,您都希望发出一个值,因此您不需要过滤器,而是需要一个三元表达式:

(您可以省略
num!=”
,因为
num
是一个字符串,而不是一个浮点或整数,所以它是等效的且更短)

其结果是:

[3.0, 5.0, 3.0, None, 1.0]

简单列表理解:

num_list = [float(e) if e else None for e in map(lambda x: x.strip(), array)]
在转换之前,我们去掉字符串,这样就没有前导或尾随空格了

这将把“”映射到“”,然后可以使用
进行检查,如果

您可以尝试以下操作:

array = ["3", "5", "3", "", "1"]

final_list = [int(i) if i else None for i in array]
输出:

[3, 5, 3, None, 1]

我不确定您是否希望
等于
None

如果您只想删除
,则:

array = ["3", "5", "3", "", "1"]
print [float(x) for x in array if x]
// result: [3.0, 5.0, 3.0, 1.0]
如果要将
替换为
None

array = ["3", "5", "3", "", "1"]
print [float(x) if x else None for x in array]
// result: [3.0, 5.0, 3.0, None, 1.0]

[float(num)if num!=“else None for num in array]
哦,我很笨,非常感谢:)也可以是
if num
,而无需严格检查空字符串。@CasualDemon是的,因为输入不是字符串。没错。不是DVer,但它不会像OP那样用
None
替换空字符串requested@Wondercricket编辑。非常感谢。
array = ["3", "5", "3", "", "1"]
print [float(x) if x else None for x in array]
// result: [3.0, 5.0, 3.0, None, 1.0]