使用 enumerate() 枚举包含字母而非数字的项目

Using enumerate() to enumerate items with letters rather than numbers

我正在尝试使用内置函数 enumerate() 来标记一些点或顶点,其中每个点都由其在元组列表(或集合)中的坐标表示,基本上看起来像 {(4,5), (6,8), (1,2)}

我想将一个从 "a" 开始的字母按升序分配给这个集合中的每个元组,使用 enumerate() 做的完全一样但是它的写法是 returns 每个项目的索引值,以便它是从 0 开始的数字。

除了自己写 enumerate() 之外,还有什么方法可以做到吗?

也许这是获得您想要的东西的一种方式,使用 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)

这是enumerate的签名。

enumerate(iterable, start=0)

使用 start 作为 'A' 的 65 和 'a' 的 97。

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)

看看这个:

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

这个returns:

{'a': (4, 5), 'b': (6, 8), 'c': (1, 2)}

枚举函数定义如下:

enumerate(iterable, start=0)

我认为只需要编写自己的枚举或围绕枚举的包装。