2016-07-29 3 views
1

Скажем, у меня есть список символов ['h','e','l','l','o'], и мне хотелось посмотреть, соответствует ли список символов строке 'hello', как бы я это сделал? Список должен точно соответствовать символам. Я подумал об использовании чего-то вроде:Сравнение строки со списком символов

hList = ['h','e','l','l','o'] 
hStr = "Hello" 
running = False 

if hList in hStr : 
    running = True 
    print("This matches!") 

но это не сработает, как бы я сделал что-то подобное?

ответ

5

Вы хотите ''.join(hList) == hStr.

Это превращает список в строку, поэтому его можно легко сравнить с другой строкой.

В вашем случае вы, похоже, не заботитесь о случае, поэтому вы можете использовать нечувствительный к регистру сравнительный анализ. См. How do I do a case insensitive string comparison in Python? для обсуждения этого вопроса.

+0

ах спасибо, теперь это кажется очевидным. join (hList) преобразует список в строку: P – RonB7

1

Или, другой путь в обратном, что предлагает другой ответ, создать список из hStr и сравнить, что:

list(hStr) == hList 

, который просто сравнивает списки:

list('Hello') == hList 
False 

list('hello') == hList 
True 
0

Альтернативное решение состоит в том, чтобы разбить строку на массив:

list(hStr) == hList 


>>> list("hello") 
['h', 'e', 'l', 'l', 'o'] 
+0

Да, исправлено, что –