有一行代码的条件python列表?

时间:2015-10-02 14:47:51

标签: python list

我有以下代码,运行完美。然而,总是试图改进一些事情,我想知道我们是否只用一行来写这个:

l,listSex = [], ['male1', 'female23', 'male2', 'female1', 'female2']
for s in listSex:
    if 'female' in s:
        l.append(1)
    else:
        l.append(0)

我的问题是如何处理else案例(否则,答案非常简单)。

2 个答案:

答案 0 :(得分:5)

将列表推导与条件表达式一起使用。

listsSex = ['male1', 'female23', 'male2', 'female1', 'female2']
l = [1 if 'female' in s else 0 for s in listSex]

答案 1 :(得分:0)

你也可以使用lambda表达式:

listSex=['male1','female23','male2','female1','female2']

l= map(lambda x: int(not('female' in x)), listSex)

或使用类似的逻辑@chepner

l  = map(lambda x: int(x.startswith('male')), listSex)