2016-09-07 5 views
0
x = ["Cookie flavored water is yummy 6", "Coding complicated 16", "Help 7"] 

for i in x: 
    if "flavored" in x: 
     print ("Yes") 
    else: 
     print ("No") 

正確な文字列「Cookie flavored water is yummy」を希望しますが、私は受け入れられません6つの部分が含まれています。私は完全にこれを達成する方法に夢中になっています。また、目的は最初の要素から別の要素に変わるかもしれません。まあ正確な文を一致させるためには、正確な文章がリストに含まれている必要があります。

+0

'if i =="クッキー風味の水がおいしい "です。ここではxをループしますが、文字列ではなくxをテストします。もっと具体的になりますか?それは、「クッキー風味のおいしい水がおいしい」6ということを意味します。 –

答えて

1

xiで繰り返していますが、文字列がリストに属しているかどうかは常にチェックされています。これは常にfalseです。

xの要素が他方"Cookie flavored water is yummy"

x = ["Cookie flavored water is yummy 6", "Coding complicated 16", "Help 7"] 

for i in x: 
    print ("Yes" if "Cookie flavored water is yummy" in i else "No") 

が含まれている場合、正確な文字列の一致のために、単にループなしinを使用確認する、ループはinオペレータによってxに作られ:

print ("Yes" if "Cookie flavored water is yummy" in x else "No") 

多くの要素で文字列を正確に一致させる必要がある場合は、検索時間がはるかに短いため、要素をsetに配置することを検討してください(ハッシュインポ)。コードはそれとは別に同じままです。

1

文字列は常にあなたがこれを行う可能性が指定されている場合:

yourString = "Cookie flavored water is yummy" 
for item in x: 
    if yourString in item: 
     print 'Yes' 
    else: 
     print 'No' 

これは、指定した文字列を各リスト項目をチェックします。あなたの例では、 "Cookie flavored water is yummy 6"には "Cookie flavored water is yummy"という部分文字列が含まれています。したがって、スクリプトは 'Yes'と表示されます

0

「受け入れ可能」とはどういう意味ですか?さらに、リストの項目の末尾にある数字を含めることを望まないと言うときは、あなたの比較のための意味ですか?私は他の答えに同意し、数字をリストから削除したい場合は、

x = [' '.join(i.split(' ')[:-1]) for i in x] 
関連する問題