Справка по пониманию списка: Python - PullRequest
1 голос
/ 13 марта 2020

Мне нужна помощь в поиске результата для данных определений, используя python и понимание списка.

firstSentence = ["Help", "me", "stack", "overflow", "you're", "my", "only", "hope"]
secondSentence = ["I", "hope", "you're", "enjoying", "the", "riddles", "I've", "created"]

Что должно быть напечатано: ['HelpI', 'Helpthe', 'meI', 'stackI', 'stackhope', 'stackthe', "stackI've", 'overflowI', 'overflowhope', "overflowyou're", 'overflowthe', 'overflowriddles', "overflowI've", 'overflowcreated', "you'reI", "you'rehope", "you'rethe", "you'reI've", 'myI', 'onlyI', 'onlythe', 'hopeI', 'hopethe']

Я знаю, что это имеет делать с комбинациями, которые должны быть меньше, чем второе предложение, но я не уверен, как это выполнить.

Использование понимания списка: как мне объединить первое и второе предложение, учитывая, что длина не может быть больше чем второе предложение.

1 Ответ

1 голос
/ 13 марта 2020

Чтобы сначала получить четкое представление о списках, давайте попробуем получить желаемый вывод, используя вложенный l oop:

firstSentence = ["Help", "me", "stack", "overflow", "you're", "my", "only", "hope"]
secondSentence = ["I", "hope", "you're", "enjoying", "the", "riddles", "I've", "created"]

result = []
for firstWord in firstSentence:
    for secondWord in secondSentence:
        if len(secondWord) < len(firstWord):
            result.append(firstWord+secondWord)
print(result)

Вывод:

['HelpI', 'Helpthe', 'meI', 'stackI', 'stackhope', 'stackthe', "stackI've", 'overflowI', 'overflowhope', "overflowyou're", 'overflowthe', 'overflowriddles', "overflowI've", 'overflowcreated', "you'reI", "you'rehope", "you'rethe", "you'reI've", 'myI', 'onlyI', 'onlythe', 'hopeI', 'hopethe']

Теперь давайте преобразуем этот вложенный l oop со списком:

result = [firstWord+secondWord for firstWord in firstSentence for secondWord in secondSentence if len(secondWord) < len(firstWord)]
print(result)

Вывод:

['HelpI', 'Helpthe', 'meI', 'stackI', 'stackhope', 'stackthe', "stackI've", 'overflowI', 'overflowhope', "overflowyou're", 'overflowthe', 'overflowriddles', "overflowI've", 'overflowcreated', "you'reI", "you'rehope", "you'rethe", "you'reI've", 'myI', 'onlyI', 'onlythe', 'hopeI', 'hopethe']

Примечание: переменные не объявлены или не используются как camelCase в Python. Предпочитает имена переменных в нижнем регистре, где слова разделяются подчеркиванием (_).

Из Python Указание PEP-8:

Имена функций должны быть строчными, слова должны быть разделены подчеркивает по мере необходимости, чтобы улучшить читаемость. Имена переменных соответствуют тому же соглашению, что и имена функций.

Ссылка:

...