2014-01-23 2 views

ответ

5

Это потому, что в w нет элемента, то есть '4KUI'. Конечно, есть тот, который начинается таким образом.
Я думаю, что это то, что вы ищете:

w = ['4KUI_YLR242C.pdb', '2CQA_CGI-52.pdb', '4G4S_YFR051C.pdb'] 
if any(i.startswith("4KUI") for i in w): 
    print "got !!" 
+5

Или, в более общем плане, '«4KUI»в i' – jonrsharpe

0

вы сравниваете всю строку там. вам нужно сделать что-то вроде

for string in w: 
    if '4kui' in string: 
     print "got!!" 
+0

немного запутанным, чтобы использовать' string' как ваше имя переменной, учитывая, что есть питон модуль с таким именем. Было бы лучше использовать что-то еще. – elParaguayo

+0

Ну, я сделал это в основном для ясности происходящего, а не для фактического использования. – Ajurna

0

Пример

#!/usr/bin/python 

entries = ['Glasgow', 'Edinburgh', 'Scotland', 'Dundee'] 

if [entry for entry in entries if entry.startswith('Dun')]: 
     print "Found entry for Dundee" 

Execution

питон example.py

+0

Хотя это работает, реализация @ inspectorG4dget, использующая ключевое слово 'any', намного читаема. – Corvusoft

0

В этом контексте «in» определяет, является ли «4KUI» значением одного из элементов в вашем списке. Вы хотите увидеть, есть ли «4KUI» в одном из элементов вашего списка. Попробуйте это:

w = ['4KUI_YLR242C.pdb', '2CQA_CGI-52.pdb', '4G4S_YFR051C.pdb'] 

for f in w: 
    if '4KUI' in f: 
    print "got !!" 
0
w = ['4KUI_YLR242C.pdb', '2CQA_CGI-52.pdb', '4G4S_YFR051C.pdb'] 

for item in w: 
     if "4KUI" in item: 
       print "got !!" 
Смежные вопросы