这是问题:
执行函数processList2(inputList, specialItem, ignoreItems)
返回一个新列表,其中包含inputList
的所有项目(按原始顺序),除了
ignoreItems
中的所有内容specialItem
(如果specialItem
不在ignoreItems
中)的出现应成为新列表中的字符串"special"
。我正在尝试使用列表理解从inputList
创建一个新列表。我可以获得items not in ignoreItems
,但似乎无法弄清楚item == specialItem
时如何打印“特殊”。
这是我到目前为止的内容:
def processList2(inputList, specialItem, ignoreItems):
return [item for item in inputList if item not in ignoreItems]
示例输出如下:
>>> processList2([1,1,2,2], 1, [2])
['special', 'special']
或
>>> processList2([1,2,3,4,True,'dog'], 4, [3,5,4])
[1, 2, True, 'dog']
答案 0 :(得分:5)
您可以在Python中使用三元运算符。
def processList2(inputList, specialItem, ignoreItems):
return [item if item != specialItem else "special" for item in inputList if item not in ignoreItems]
有关该主题的更多信息,另请参见this post。