我想我找到了你想要的東西:在使用本Lorem存有
#!/usr/bin/env python2
def give():
result = []
with open('words2.txt', mode='rt') as fin:
for line in fin:
result += line.split()
return result
def enter(forbid):
words = give()
for w in words:
if all([letter not in forbid for letter in w]):
print w
enter("bcdfghjklmst")
(即從words2.txt
內容):
而土格言虛無ISTE現狀極小repudiandae possimus 。 Provident nam explicabo ut accusantium odit voluptatibus。 Animi dolor sit deserunt quisquam perspiciatis aut et voluptas。 Repellat quo accusamus sint。
Tempore vero iste rerum。 Harum aut rerum qui rerum quis dolores perspiciatis。準確的需求和最佳的解決方案。 Autem delectus aut sunt ab officiis坐在非voluptatum。 Id sequi voluptas qui quo officiais placeat voluptatem。
Nemo ipsa illo amet deleniti。 Praesentium voluptatum voluptate mollitia quod voluptates beatae。 Doloremque molestias nostrum iste possimus veritatis repellendus et dolor。 Quidem sit iusto autem et id dicta ut。
Ad earum incidunt officia ea。 Et quidem molestiae et facere。 Culpa harum veniam illum。 Culpa quod porro in etos adipisci。 Sint accusantium est qui inventore minima perferendis。 Autem quidem omnis et quia error enim nam。
分隔和分隔。 Et deleniti expedita earum nesciunt voluptas ea。在asperiores a nobis occaecati quam qui repellendus molestiae。 Except distinstio consequatur commodi est velit sit。坐在solip adipisci aut。 Eos voluptatibus enim corrupti。
輸出(不包含從 「bcdfghjklmst」 任何字母所有字):
$ ./test_script2.py
quo
quo
vero
qui
non
qui
quo
ea.
porro
in
qui
quia
error
ea.
In
a
qui
a
說明:
give()
收集詞語的一個列表,並返回他們都
- 在
give()
之內,使用with
聲明來確保文件得到正確處理(最後關閉......)
for w in words
瀏覽列表中的所有單詞
[letter not in forbid for letter in w]
是僅包含布爾值的comprehension list。對於當前檢查詞的每個字母(即w
),如果該字母不屬於forbid
,則將放入True
。 all()
是True
只有在所有列表中的布爾是True
,所以僅當w
所有信件不屬於forbid
- 最後一部分可以縮短
這樣的:
def enter(forbid):
for w in give():
if all([letter not in forbid for letter in w]):
print w
你確定你在你的文章中正確縮進了你的代碼嗎? – edwinksl
你應該改正縮進,並確切地告訴什麼不起作用。它打印什麼?它是否引發異常? – zezollo