“如何为字典创建计数器”

时间:2019-04-25 19:48:18

标签: python python-3.x

dic_1 = {“ 1234567890”:“ 1”,这是第一个卡号,因此我们给它编号1         “ 1234567891”:“ 2”,这是第二个卡号,因此我们给它编号2         “ 1234567880”:“ 3”,这是第二张卡号,所以我们给它编号3     “ 1234567881”:“ 4”,     “ 1234567890”:“ 1”,我们已经为此编号指定了编号,因此我们不分配 为此使用一个新的数字,我们保留之前给出的数字

我想做的是

  1. 创建一个从1开始的计数器
  2. 遍历每个提交,并针对每个提交,遍历卡号 如果卡号已在字典中,则不执行任何操作
  3. 如果不是,则将其插入并将等于计数器的值设置为字符串,然后递增计数器
  4. 最后,我应该从卡号到号码进行映射
  5. 遍历每个提交,并针对每个提交,遍历卡号并将卡号值替换为与您在上面构建的字典中的键相关联的值

1 个答案:

答案 0 :(得分:0)

如果您不关心卡的插入顺序,那么我认为最简单的解决方案如下:

card_list = ["a", "b", "c", "d", "e", "a", "b"]
dic1 = {card:num for card,num in enumerate(set(card_list))}

输出:

{0: 'e', 1: 'b', 2: 'a', 3: 'c', 4: 'd'}

您正在从一组值列表中构建字典(删除重复项),并且枚举将从0len(card_list)-1开始计数。

-

如果订单对您很重要,那么您可以执行以下操作:

card_list = ["a", "b", "c", "d", "e", "a", "b"]

dic1 = {}

counter = 1
for card in card_list:
    if not card in dic1:
        dic1[card] = counter
        counter += 1

输出:

{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}