字典中的范围函数

2024-04-26 17:29:09 发布

您现在位置:Python中文网/ 问答频道 /正文

example from this dog chart

我的目标是:

def DogYears():
    small_dog = {
    1 : 15,
    2 : 24,
    3 : 28,
    4 : 32,
    5 : 36
    6 : 40
    .
    .
    .
    }

我的问题是如何使这个过程自动化,这样就不必手动填充了?你知道吗

我在想这样的事情,至少在那个方向,当然行不通:

def DogYears():
    small_dog = {
    range(15, 80, 4)
    }

我还需要分配键值对。有什么想法吗?你知道吗


Tags: from目标过程exampledefchartrange手动
3条回答

如果你想建立一个字典,一个简单的for就足够了。你知道吗

   def DogYears():
      small_dog = {}
      small_dog[1] = 15
      i = 2
      for j in range(24, 80, 4):
        small_dog[i] = j
        i = i + 1

你可以使用一个字典构造器包含人类年和狗年的范围,你必须添加离群值15,它会出现在最后,如果你需要正确排序字典,你可以使用lambda对它进行排序。你还需要扩大你的范围1个单位,因为他们不包括在内。你知道吗

small_dog = dict(zip(range(2, 17), range(24, 84, 4)))
small_dog[1] = 15
small_dog = dict(sorted(small_dog.items(), key=lambda x: x[0]))
# {1: 15, 2: 24, 3: 28, 4: 32, 5: 36, 6: 40, 7: 44, 8: 48, 9: 52, 10: 56, 11: 60, 12: 64, 13: 68, 14: 72, 15: 76, 16: 80}

使用列表可以让年龄保持正常顺序,并通过索引访问值。由于所有键只增加一个,因此使用列表将是更合适的数据结构。只需将range()结果存储到列表变量中即可。然后要访问正确的年份,您可以像我在GetAge函数中那样获取年龄,并传入年份和列表。你知道吗

def DogYears():
    small_dog = range(15, 80, 4)

def GetAge(year, dog_list):
    index = year - 1
    if index >= 0 and index < len(dog_list):
        return dog_list[index]

相关问题 更多 >