使用all內置。
string = input("Enter your string")
print(all(char in ['m', 'i', 'u'] for char in string))
基本上,
(char in ['m', 'i', 'u'] for char in string)
構建能產生布爾可迭代。對於字符串中的每個字符(從第一個字符開始),如果char是m,i或u,則此迭代器產生True
,否則返回False
。
然後你喂all()
這個迭代:
all(iterable)
返回真,如果迭代的所有元素都是真(或者,如果可迭代爲空)。等效於:
def all(iterable):
for element in iterable:
if not element:
return False
return True
all
迭代新創建的迭代器,一旦它得到False
,或True
如果它只有True
值返回False
。
迭代器的好處是,沒有True
/False
列表曾經計算:測試是在飛行中完成,all
爲一個char發現不是m的都不是,我,或u就停止。這裏沒有關係,但這可能會在某些應用程序中產生性能影響。
這肯定有效,但請你給我什麼印刷後的代碼做解釋。對我來說,它看起來好像只是在字符串中尋找我和你,如果沒有,那麼它會填滿,但例如,這個詞有什麼用? –
我編輯了我的答案來回答這個問題。我將其留作教學目的,但我更喜歡[sberry的解決方案](http://stackoverflow.com/a/36696276/4653485)。 –