2015-02-06 4 views
0

Это выглядит довольно прямолинейно, но я застрял. Я хочу видеть, содержит ли строка (str1) все буквы, которые находятся во второй строке (str2). Если str1 содержит все буквы (в любом порядке, любое количество раз), верните True. Если нет, верните false.Python: сравните 2 строки и посмотрите, содержат ли они одни и те же буквы

[Примечание] Str2 необязательно должен иметь все буквы, которые имеет str1.

+0

You нужно показать нам ваш образец ввода и то, что вы уже пробовали! – Kasramvd

+3

выглядит как set() может быть хорошим вариантом здесь. https://docs.python.org/2/library/sets.html – Malonge

+0

Ну, строки - это входы от пользовательской функции (str, str), а затем гипотетически можно просто сравнить эти строки каким-то образом. Я просто не уверен, куда идти вообще, потому что я пытался, если ... else заявления и while заявления и просто не может заставить его работать. –

ответ

0

Подобно malonge упоминалось, набор() является хорошей идеей для такого рода сравнения:

a = "abcdefg" 
b ="dgggg" 

if set(b) & set(a) == set(b) : 
    print "foo" 
else: 
    print "bar" 
+1

Это должно быть даже проще: если set (b) - set (a): print "b содержит символы, отличные от" – deets

+1

Согласованный, но issubset был бы самым pythonic образом, хотя – nitimalh

+0

Это работает !! Спасибо! Благодаря @malonge тоже! –

5

Преобразование строк в set объектов.

set(str1).issubset(set(str2))

Вы также можете использовать этот альтернативный синтаксис:

set(str1) <= set(str2)

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