簡體   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