我有以下代码,运行完美。然而,总是试图改进一些事情,我想知道我们是否只用一行来写这个:
l,listSex = [], ['male1', 'female23', 'male2', 'female1', 'female2']
for s in listSex:
if 'female' in s:
l.append(1)
else:
l.append(0)
我的问题是如何处理else案例(否则,答案非常简单)。
答案 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)