2015-07-03 31 views
1

我是Python新手,無法在any函數中正確輸出一天。 Any函數返回TrueFalse,但我想輸出列表的元素。示例如下:Python函數「any」中的輸出列表元素

days = ["monday","tuesday","wednesday","thursday","friday"] 
if any(day in content.lower() for day in days): 
    print day 

我想打印哪一天,功能已找到字符串「內容」。內容一次只有一天。有沒有一個簡單的方法來做到這一點?

回答

7

我想你想要的是:

print [day for day in days if day in content.lower()] 

這會給你的所有匹配天的列表。

+0

我會接受這個答案,因爲它更通用。我有一個例子,我只有一天在一個字符串中,但在多天的情況下,這是一條路。多謝你們!問題解決:) –

+1

@marc_s注意,這也允許你*檢查*你只有一天在字符串中(例如'if len(matching_days)== 1:');知道您的數據何時不符合您的預期總是很好的。 – jonrsharpe

+0

同意,謝謝。 –

2

如果你只需要它匹配的第一天,你也可以做 -

>>> content = "tuesday" 
>>> print(next(day for day in days if day in content.lower())) 
tuesday 
+0

這個答案適用於我,因爲我只有一天的字符串。對於其他情況,以下答案是更好的解決方案。謝謝。 –

相關問題