繁体   English   中英

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

[英]Python - Proper syntax for 1 line if-else satement

作为序言,我对编程很陌生,所以请耐心等待。

我在编写 function 的语法时遇到问题,我希望它检查已导入和排序的文本文件中的重复值。 我想用下面的代码做到这一点:

def kollaDublett(dataList):
 c = Counter(dataList)
 result = [x for x, v in c.items() if v > 1]

dataList 是我正在检查重复项的列表,我想以某种方式嵌入一个if-else以返回定义result的 True 或 False。 这项任务的指导员说可以单行完成,但她无法真正完成,因为她在 Python 方面没有太多经验。

我可以返回result并打印它的值,它会显示重复项,但正如我所提到的,我希望它检查是否存在重复项,然后取决于返回 True 或 False。

提前致谢!

针对您的问题,使用any ,您可以编写:

def kollaDublett(dataList):
    c = Counter(dataList)
    return any((x for x,v in c.items() if v > 1))

通常回答关于“1 line if-else statement”的标题问题,您可能需要查看三元运算符

如果您只想要一个 True/False 列表,您可以使用列表推导:

def kollaDublett(dataList):
    c = Counter(dataList)
    result = [True  if v > 1 else False for x, v in c.items()]
    return result

相反,要返回字典(表达式:是否重复):

 def kollaDublett(dataList):
     c = Counter(dataList)
     result = {x:(True  if v > 1 else False) for x, v in c.items()}
     return result

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM