Python:计算元组列表的“组id”

Python:计算元组列表的“组id”,python,Python,我有一个元组列表: tups = [("A","a"), ("A","b"), ("A", "c"), ("B", "a"), ("B", "b"), ("C", "a"), ("L", "a")] 我想计算一些东西,比如每个元组的组id。即,在伪代码中: ("A", "a") --> 11 ("A", "b") --> 12 ("A", "c") --> 13 ("B", "a") --> 21 ("B", "b") --> 22 ("C", "a")

我有一个元组列表:

tups = [("A","a"), ("A","b"), ("A", "c"), ("B", "a"), ("B", "b"), ("C", "a"), ("L", "a")]
我想计算一些东西,比如每个元组的组id。即,在伪代码中:

("A", "a") --> 11

("A", "b") --> 12

("A", "c") --> 13

("B", "a") --> 21

("B", "b") --> 22

("C", "a") --> 31

("L", "a") --> 121
我试图将我的元组转换成一个具有多索引的数组,但我不知道如何计算ID。我只是在课堂上找到了一种相当模糊的方法。有人吗

编辑

实际元组包含locationname streetname对,即Summervillage、Longstreet。所以相同的地点应该有一个id,街道名称也应该有。组id应该是两者的组合。我不知道如何进一步澄清这一点

编辑2

由于不鼓励在stackoverflow上删除带有答案的问题,因此另一个编辑:

("Summervillage", "Longstreet") --> id 1_1
("Summervillage", "Shortstreet") --> id 1_2
("Summervillage", "Nicestreet") --> id 1_3
("Wintertown", "Somestreet") --> id 2_1
("Wintertown", "Midstreet") --> id 2_2
("Bigcity", "Darkalley") --> id 3_1

因此,组id应该为每个城市包含一个编号,为每个城市的每个独特街道包含一个编号

神秘的问题会得到神秘的答案:

import string

tups = [("A", "a"), ("A", "b"), ("A", "c"), ("B", "a"),
        ("B", "b"), ("C", "a"), ("L", "a")]

ids = {tup: (str(string.ascii_uppercase.index(tup[0]) + 1) +
             str(string.ascii_lowercase.index(tup[1]) + 1))
       for tup in tups}

print(ids)
# {('B', 'b'): '22', ('A', 'a'): '11', ('A', 'b'): '12',
#  ('B', 'a'): '21', ('C', 'a'): '31', ('L', 'a'): '121', ('A', 'c'): '13'}

这些身份证到底是什么?一个任意的数字?不清楚你在问什么,但我认为你需要像霍夫曼密码一样的东西。从给出的例子中,我相信第一个位置有一个大写字母,第二个位置有一个小写字母。ID是通过将每个字母的字母位置串联而成的,因此L,a是121,因为L是字母表中的第12个字母,a是第一个字母。编辑添加:我们不会有ID冲突,ID 121也可能是A,v,也许这需要重新思考…@seventyeightist在编码之后,我们遇到了歧义,因为121可能是la或au 12-1或1-21@TemporalWolf是的,但考虑到imo提供的示例,这是唯一有意义的编码。因此我对ID冲突发表了评论!