列出3个参数的理解和语法错误

时间:2019-03-07 19:46:24

标签: python list-comprehension

这是问题:

执行函数processList2(inputList, specialItem, ignoreItems)返回一个新列表,其中包含inputList的所有项目(按原始顺序),除了

  1. 删除列表ignoreItems中的所有内容
  2. 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']

1 个答案:

答案 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