生成0和1的随机列表后
decision = [0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0]
我想生成另一个列表,它在决策中返回'pass'值为1,如果值为0则返回'fail'
['fail', 'fail', 'pass', 'pass', 'pass', 'fail', 'fail', 'pass',....'fail']
我尝试使用列表理解,
newlist = ["pass" for k in decision if k == 0]
但是如果k==1
,我想不出一种整合其他条件的方法。
请帮忙。
使用理解的值部分中的条件“
newlist = ["pass" if k == 1 else "fail" for k in decision]
或者,如果您有更多值,请创建字典:
res_dict = {
0 : "Equal",
1 : "Higher",
-1 : "Lower",
}
newlist = [res_dict.get(x) for x in decision]
我知道我的答案不是你想要的,但我相信如果你只使用True
或False
会更容易。这里的代码:
decision = [0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0]
result = [d == 1 for d in decision] # // So 1 will be True and 0 will be False
counter=0
otherlist=[]
for element in mylist:
if element == 0:
otherlist[counter]="fail"
else:
otherlist[counter]="pass"
counter += 1
它不会使用理解,但它会做到这一点。希望这可以帮助。更快的选择是:
otherlist = []
for element in mylist:
if element == 0:
otherlist.append("fail")
else:
otherlist.append("pass")
你也可以允许0代表False
和1代表True
otherlist = []
for element in mylist:
if element == 0:
otherlist.append(False)
else:
otherlist.append(True)