Python-1行if-else语句的正确语法

Python-1行if-else语句的正确语法,python,Python,作为序言,我对编程非常陌生,请耐心听我说 我在编写一个函数时遇到语法问题,我希望它检查已导入和排序的文本文件中是否存在重复值。 我希望使用以下代码执行此操作: def kollaDublett(dataList): c = Counter(dataList) result = [x for x, v in c.items() if v > 1] dataList是我正在检查重复项的列表,我想以某种方式嵌入一个if-else,在定义结果的地方返回True或False。 这项作业的指导老

作为序言,我对编程非常陌生,请耐心听我说

我在编写一个函数时遇到语法问题,我希望它检查已导入和排序的文本文件中是否存在重复值。 我希望使用以下代码执行此操作:

def kollaDublett(dataList):
 c = Counter(dataList)
 result = [x for x, v in c.items() if v > 1]
dataList是我正在检查重复项的列表,我想以某种方式嵌入一个
if-else
,在定义
结果的地方返回True或False。
这项作业的指导老师说,可以在一行中完成,但她无法真正做到这一点,因为她在Python方面没有太多经验

我可以返回
结果
并打印其值,它将显示副本,但正如我提到的,我希望它根据返回的是真还是假来检查是否存在副本


提前谢谢

如果您只想要一个真/假列表,您可以使用列表理解:

def kollaDublett(dataList):
    c = Counter(dataList)
    result = [True  if v > 1 else False for x, v in c.items()]
    return result
相反,要返回字典(表达式:duplicate or not):


return bool(result)
或者更明确地说,
return len(result)>0
@rdas解决了这个问题,非常感谢!这里有很多没有有用信息的文本。直到最后一段我才知道你的问题是什么。你可以删除那一段上面的所有内容,这将是一种改进。
如果某个布尔值为真,那么另一个为假
是一种愚蠢的书写方式。
某个布尔值
@Aran Fey,我同意。请显示获得此结果的最佳方法。对于x,c.items()中的v,result={x:(bool(v>1))
 def kollaDublett(dataList):
     c = Counter(dataList)
     result = {x:(True  if v > 1 else False) for x, v in c.items()}
     return result