Использование enumerate () для перечисления элементов с буквами, а не числами - PullRequest
3 голосов
/ 10 марта 2020

Я пытаюсь использовать встроенную функцию enumerate () для обозначения некоторых точек или вершин, где каждая точка представлена ​​своими координатами в списке (или наборе) кортежей, который по сути выглядит как {(4,5), (6,8), (1,2)}

Я хочу назначить букву, начинающуюся с «a» в порядке возрастания, для каждого кортежа в этом наборе, используя enumerate(), делает то же самое, но оно написано так, что возвращает значение индекса каждого элемента, так что это число, начинающееся с 0.

есть ли способ сделать это, кроме написания моего enumerate()?

Ответы [ 4 ]

5 голосов
/ 10 марта 2020

Проверьте это:

import string
tup = {(4,5), (6,8), (1,2)}
dic = {i: j for i, j in zip(string.ascii_lowercase, tup)}

Возвращает:

{'a': (4, 5), 'b': (6, 8), 'c': (1, 2)}
4 голосов
/ 10 марта 2020

Это подпись enumerate.

enumerate(iterable, start=0)

Используйте start как 65 для 'A' и 97 для 'a'.

lst=[(1,2),(2,3),(3,4),...]
for idx,val in enumerate(lst,65):
    print(chr(idx),val)

A (1, 2)
B (2, 3)
C (3, 4)
0 голосов
/ 10 марта 2020

Функция перечисления определяется следующим образом:

enumerate(iterable, start=0)

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

0 голосов
/ 10 марта 2020

Может быть, это способ получить то, что вы хотите, используя chr():

L = [(4,5), (6,8), (1,2)]
for k, v in enumerate(L):
    print(chr(65 + k), v)

Вывод:

A (4, 5)
B (6, 8)
C (1, 2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...