#python #string #format #tuples
Вопрос:
Пример кода:
names = "tom", "maryann", "jerry", "al", "beau", "will", "joy", "bella"
Нужно, чтобы он прошелся по «именам» и напечатал каждую пару следующим образом:
(задействованы специальные символы и интервалы, но сейчас меня это не волнует).
tom jerry beau joy
maryann al will bella
Я не хочу использовать списки (если мне это не нужно), и я не хочу использовать «end=» (потому что я не могу «tab» или использовать «t»). Предпочтительно использовать строку f, а не «.формат». Я знаю, что все это звучит придирчиво, мои извинения. У меня такое чувство, что я провел так много исследований, и я возвращаюсь с пустыми руками.
Большое вам спасибо!
Комментарии:
1. Извините за это, это была опечатка, ее исправили 🙂 Логика состоит в том, чтобы взять каждый из двух элементов и соединить их вертикально, бок о бок. Надеюсь, в этом есть смысл…
2. Я мало что знаю о Python, но мне кажется, что когда вы присваиваете несколько значений одной переменной, у вас по определению есть массив, что означает, что у него есть номера индексов? неужели нет способа перебрать индексы и разделить шансы и четы на две разные переменные, а затем сопоставить их? Я также думал, что регулярное выражение может помочь, но я недостаточно знаю о Python, чтобы сказать, как именно.
Ответ №1:
Попробуй это:
names = ["tom", "maryann", "jerry", "al", "beau", "will", "joy", "bella"]
print('t'.join(names[::2]),'t'.join(names[1::2]) , sep='n')
Или:
print('t'.join(names[::2]))
print('t'.join(names[1::2]))
Комментарии:
1. Спасибо, пользователь1740577~ Позвольте мне немного поиграть с этим и посмотреть, будет ли это работать со специальным интервалом…
2. @JoyBrock не стесняйтесь играть 😉
Ответ №2:
Сначала повторите имена, используя шаг 2, что ::2
и делается, и выведите имена. Затем снова сделайте то же самое для элементов в именах из индекса 1:
.
for x in names[::2]:
print(x, end='t')
print()
for y in names[1:][::2]:
print(y, end='t')
выход:
gary jerry happy bella
mary alice willow joy
Комментарии:
1. Спасибо, пижон! Но в вопросе я пытаюсь избежать использования «end=» или списков. Как — нибудь обойти это?
2. @JoyBrock, затем вы можете просто сначала связать строку и, наконец, только распечатать. Но я не думаю, что есть какая-либо веская причина для того, чтобы вы не использовали
end
параметр3. Как и в вопросе, для каждого «имени» используется специальный интервал… поэтому «t» не будет работать (количество пробелов зависит от длины второй части «пары»… так что это становится странным!). Я обновлю вопрос этим разъяснением, извините за это 🙂
Ответ №3:
Обновить:
Я смог обойти, не используя никаких списков (что было плюсом!), Но не так много в «конце=»… ТЕМ не менее, я заставил его работать, и мне удалось отформатировать его горизонтально с правильным интервалом для каждой строки (пары).
Спасибо всем, кто прокомментировал!