Как наборы и наборы сравнений работают в Python?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как наборы и наборы сравнений работают в Python?

Сообщение Anonymous »

Я изучаю Python, исходящий из некоторого опыта на уровне начинающих с Java. Все это имеет смысл по большей части, но одно из упражнений заставило меня задуматься, что на самом деле происходит в Python. < /P>
import string

def ispangram(str1, alphabet=string.ascii_lowercase):
str1 = set(str1.lower().replace(' ',''))
alphabet = set(alphabet)

print(str1)
print(alphabet)

return str1 == alphabet
< /code>
Цель этой функции состоит в том, чтобы определить, является ли строка, передаваемая как параметр, является паграм (использует каждую букву алфавита). Очевидно, что операторы печати не нужны, но я включил их, чтобы попытаться выяснить, что происходит. < /P>
Ввод: < /p>
ispangram("The quick brown fox jumps over the lazy dog")
< /code>
output: < /p>
{'d', 'e', 'r', 'b', 't', 'i', 'l', 'a', 'y', 'o', 'v', 'p', 'z', 'c', 'g', 'n', 'f', 'q', 'x', 'm', 'h', 'w', 'k', 's', 'u', 'j'}

{'d', 'e', 'r', 'b', 't', 'i', 'l', 'a', 'y', 'o', 'v', 'p', 'z', 'c', 'g', 'f', 'n', 'q', 'x', 'm', 'h', 'w', 'k', 's', 'u', 'j'}

returns True
< /code>
он распечатывает тот же набор, который меняет меня. Я знаю, что порядок наборов не имеет значения при их сравнении, что имеет смысл, но почему Str1 и Alphabet будут такими же? Это потому, что этот порядок является оптимальным способом сохранить эти 26 букв с нижней частью в памяти? Как это делает Python?

Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»