Включение экземпляра 'count' в список, объединенный в строку (Python3) - PullRequest
1 голос
/ 03 марта 2020

Первый раз задаю вопрос по ТАК, поэтому, пожалуйста, потерпите меня.

В программе python, которую я пишу, я пытаюсь избежать конкатенации строки в a для l oop с помощью метода join (потому что: эффективность), но я хотел бы для программа для установки счетчика рядом с каждым экземпляром.

Например:

[1] Первый элемент [2] Второй элемент [3] Третий элемент

Из того, что я понимаю (я не мастер pythoner), эта форма использования .join () использует понимание списка, и я не могу понять правильный синтаксис, чтобы делать то, что я пытаюсь .

temporary_list = ["First item", "Second item", "Third item"]
count = 1
display = "\n".join("> [{}] {}".format((count), t), count += 1 for t in temporary_list[:10])

Я мог бы легко сделать это с помощью для l oop:

    for t in temporary_list[:10]:
            display += "> [{}] {}\n".format(count, t)
            count += 1

У меня есть похожая строка кода, которая отлично работает без подсчета.

display = "\n".join("> {}: {}".format(t, display_correctly(number_list[t])) for t in temporary_list[:10])

Я пытался поиграть с круглыми скобками, используя 'и', и много гуглил. Есть ли способ сделать это?

Если это имеет значение, я использую python 3.6

Ответы [ 3 ]

2 голосов
/ 03 марта 2020

IIU C, вам нужно enumerate:

temporary_list = ["First item", "Second item", "Third item"]
print("\n".join("> [{}] {}".format(n, i) for n, i in enumerate(temporary_list, start=1)))

Вывод:

> [1] First item
> [2] Second item
> [3] Third item
0 голосов
/ 03 марта 2020

Если вы просто хотите распечатать индекс предметов в списке. Но если вы хотите подсчитать количество вхождений каждого элемента в списке, используйте Counter ()

temporary_list = ["First item", "Second item", "Third item"]

for index,value in enumerate(temporary_list):
    print(f'[{index+1}]', value)

OUTPUT:

[1] First item
[2] Second item
[3] Third item

Если вы хотите распечатать по горизонтали:

temporary_list = ["First item", "Second item", "Third item"]
print(" ".join([f'[{index+1}] {value}' for index,value in enumerate(temporary_list)]))

ВЫХОД:

[1] First item [2] Second item [3] Third item
0 голосов
/ 03 марта 2020

Попробуйте:

"\n".join("> [{}] {}".format((count), t) for count, t in zip(range(len(temporary_list[:10])), temporary_list[:10]))

Боже мой, теперь это работает

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