Как мне одновременно печатать n-ые элементы в списке? - PullRequest
1 голос
/ 08 апреля 2020
l = ["a","1","b","2","c","3",]

Я пытаюсь напечатать элементы в списке выше одновременно. с разным текстом, добавленным перед каждым n-м элементом. то есть «алфавит» перед 0,2,4 элементами и «число» перед 1,3,5 элементами.

ожидаемый результат:

  • алфавит a
  • номер 1
  • алфавит b
  • номер 2
  • алфавит c
  • номер 3 '' '

я попробовал:

много Google ищет и применяет решения. Изучает print(*l, sep="\n") и как это не помогает с форматированием вывода перед печатью. Я попытался enumerate, но это действительно трудно набрать asp, я попытался в коде "middle_index" и разделил список на два с помощью "step :: 2", а затем напечатал дважды et c. это не работает .. пожалуйста, дайте мне знать, как это можно сделать. благодарю вас.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2020

Вот как вы можете это сделать:

lst = ["a","1","b","2","c","3"]
s1 = "alphabet"
s2 = "number"
sep = " " # You can change it to "\n"

print(*(f"{s1 if i % 2 == 0 else s2} {x}" for i, x in enumerate(lst)), sep=sep)

Вывод:

alphabet a number 1 alphabet b number 2 alphabet c number 3

Вам просто нужно изменить разделитель в соответствии с вашими потребностями.

1 голос
/ 08 апреля 2020

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

l = ["a","1","b","2","c","3",]

for idx,e in enumerate(l):
    print("alphabet" if not idx%2 else "number", e)

, чтобы получить

alphabet a
number 1
alphabet b
number 2
alphabet c
number 3

%2 означает idx%2 либо возвращает 0 (для индекса 0,2,4,6, ...) или 1 (для индекса 1,3,5, ...) - 0 является ложным и используется в троичной области оператор print для печати правильной вещи перед e записью, которую вы берете с l.

См.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...