2014-11-23 4 views
-1

Это то, что я делаю:Простой способ сравнения элементов списка со строкой?

list = ["item", "item2", "item3"] 
list2 = ["other", "stuff"] 
string = "this is a string" 
for item in list: 
    if string.startswith(item): 
     for item in list2: 
      if item in string: 
       <do stuff> 

и было интересно, если есть более простой способ сделать это.

+1

Проще как? Это похоже на правильный способ делать вещи, это понятно и понятно. – jonrsharpe

+1

Это вряд ли будет хорошей идеей переназначить «list». – Alan

+0

Просто казалось, что это долгий путь. Просто надеялся что-то вроде: , если string.startswith (любой элемент в списке) и (любой элемент в списке) в строке: #do вещи, существуют. – hacktheplanet

ответ

0

Ваш комментарий Вы хотите:

if string.startswith(tuple(item)): 
    if any(item in string for item in list2): 
     do stuff 

Но это нечто иное, чем то, что ваш код размещен делает. <do stuff> выполняется только один раз, тогда как в вашем коде его можно выполнять много раз.

+0

Я должен уточнить, у меня действительно был перерыв в работе, так что он исполнялся только один раз. Я думаю, что это может быть то, что я искал. Благодарю. – hacktheplanet

+0

@eryksun: не знал этого, спасибо! – Daniel

Смежные вопросы