给定一个列表,例如:
我希望您能将这个列表转换成一个新的列表(或者只是重新分配这个列表),使得每个“No”都被转换成0,例如。
如果我尝试以下列表推导式:
这显然会导致一个列表,其中省略了所有不是“No”的元素。
这让我得到:
a = ["No", 1, "No"]
我希望您能将这个列表转换成一个新的列表(或者只是重新分配这个列表),使得每个“No”都被转换成0,例如。
[0,1,0]
如果我尝试以下列表推导式:
[0 for i in a if i =="No"]
这显然会导致一个列表,其中省略了所有不是“No”的元素。
[0,0]
如果我按照这里给出的方法进行操作:
[0 if "No" else i for i in a]
这让我得到:
[0, 0, 0]
我猜这是因为“否”等于True
。
我对列表推导式中if/else的用法有什么误解吗?