根据Python中列表中的值返回一个字符串值

问题描述 投票:1回答:3

生成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,我想不出一种整合其他条件的方法。

请帮忙。

python list conditional
3个回答
3
投票

使用理解的值部分中的条件“

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]

2
投票

我知道我的答案不是你想要的,但我相信如果你只使用TrueFalse会更容易。这里的代码:

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

0
投票
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)
© www.soinside.com 2019 - 2024. All rights reserved.