#python #list
Вопрос:
students = ['Joe', 'Mary','Amy','Zach','Stan']
awesome_students =['is awesome' for student in students]
print(awesome_students)
Ожидаемый результат: «Джо потрясающий», «Мэри потрясающая», «Эми потрясающая» и т. Д
Результат, который я получаю: [«потрясающе», «потрясающе» и т. Д. ]
Комментарии:
1. запишите это как цикл for, а затем подумайте, как применить ту же логику внутри понимания
2.
student ' is awesome'
…!?
Ответ №1:
Вы возвращаете строковый литерал 'is awesome'
вместо использования своей student
переменной.
Одним из способов форматирования строки с помощью этой переменной является использование строки формата:
awesome_students =[f'{student} is awesome' for student in students]
Другой способ-использование строкового метода .format()
awesome_students =['{} is awesome'.format(student) for student in students]
Еще одно и, вероятно, худшее из всех моих предложений-объединить их вручную с оператором :
awesome_students =[student ' is awesome' for student in students]
Комментарии:
1. эй, спасибо, я думаю, что {студент} — лучший вариант
2. Ага. Представлены в порядке предпочтения.
3. @new_be_0905 не стесняйтесь выбирать тот или иной ответ как правильный, чтобы другие знали, что вам помогло.
Ответ №2:
Вот код, который вам нужен:
students = ['Joe', 'Mary','Amy','Zach','Stan']
awesome_students =[f"{student} is awesome" for student in students]
print(awesome_students)
До того, что вы делали, вы сохраняли строку «потрясающе» для каждого студента в списке.
Комментарии:
1. f-строки хороши, если есть форматирование, использовать его для простого объединения строк-излишество (imho) . Просто
будет работать:
student "is awesome"
2. @OlvinRoght конкатенация запутывает форматирование и пунктуацию. Ваш пример неверен:
student "is awesome"
должен бытьstudent " is awesome"
, что более очевидно, когда это одна строкаf'{student} is awesome'
3. @jorf.brunning, я заметил, что слишком поздно пропустил место для редактирования, но я подумал, что мое сообщение довольно очевидно. Для начинающих гораздо проще понять простую конкатенацию, чем исследовать, что означает
f
префикс и почему имя переменной заключено в фигурные скобки. Кроме того, форматирование потребляет больше ресурсов. Я не против форматирования, но, как и любая другая функция, ее следует использовать специально.4. Я думаю, что строка f-это то, чему должен научиться новичок, если он посмотрит ее и узнает, что это такое, это может быть полезно для обучения. Тем не менее, я думаю, что объединение также было бы хорошим способом сделать это.