我的代码中的错误在哪里尝试使用python

时间:2018-05-18 05:42:52

标签: python for-loop list-comprehension case-insensitive

我有一个代码,用于读取文件并将内容与用户输入进行比较,忽略区分大小写。

我使用list-comprehension来遍历内容并与用户输入进行比较。

问题是列表推导返回一个空列表,尽管输入的单词存在。例如:

的textContent

Les hiboux Charl es Baudelaire

周期3 *

POESIE

Sous les ifs noirs qui les abritent Les hiboux se tiennentrangés Ainsi que desdieuxétrangers Dardantleurœilrouge。 Ilsméditent。

Sans remuer ils se tiendront Jusqu'àl'heuremélancolique Où,poussant le soleil oblique, Lesténèbress'établiront。

Leur态度au sage enseigne Qu'il faut en ce monde qu'il craigne Le tumulte et le mouvement;

L'homme ivre d'une ombre qui passe Porte toujourslechâtiment D'avoir voulu changer de place。

Les Fleurs du Mal 1857年

Charl es Pierre Baudelaire(1821 - 1867)estunpoètefrançais。

  

用户输入:charl
  字存在:Charles - charle - CHARLE

x=self.lineEditSearch.text()
print(x)
textString=self.ReadingFileContent(Item)

#self.varStr =[c for c in textString if c.islower() or c.isupper() or c.capitalize()]            
self.varStr =[i for i in textString if i.lower() == x.lower()]            

print(self.varStr)

2 个答案:

答案 0 :(得分:0)

如果

user_input = "charl"
word_exist = ["Charles","charle","CHARLE","Hello"]

然后

output = [item for item in word_exist if user_input.lower() in item.lower()]
print(output)
# ['Charles', 'charle', 'CHARLE']

这是你在找什么?

答案 1 :(得分:0)

您的问题是,您只需要self.varStr满足textString的{​​{1}}成员,这意味着i.lower() == x.lower()与{{1}完全相同(不区分大小写) }}&#34 ;.

您想要选择包含 x的成员。

您可以将x更改为i.lower() == x.lower()

来实现