修改字典key值怎么办python,python字典的key可以是一个变量吗

  修改字典key值怎么办python,python字典的key可以是一个变量吗

  嗯,首先,在提到枚举方法enumerate()之前,我想到的是这个可以遍历任何元素,打印出键和值。但我没有想到的是,这种遍历只限于遍历并打印出索引和元素。

  这个问题是做罗马数字运算造成的。看一下详细的代码。

  ir={1000: M , 900: CM , 500: D , 400: CD , 100: C , 90: XC , 50: L}for i,v inenumerate (ir):print(i,v)

  它的打印效果如下

  0 1000

  1 900

  2 500

  3 400

  4 100

  5 90

  6 50

  对于key,values inir.items():print(key,values)

  这是打印出来的如下

  1000米

  900厘米

  500天

  400 CD

  100摄氏度

  90 XC

  50升

  通过上面的观察,enumerate打印索引值而不是特定字典的键值,而items()遍历字典中的所有键和值。

  题目,把罗马数字转换成整数:题目如下

  罗马数字包含以下七个字符:I、V、X、L、C、D和m。

  字符数值

  我1

  第五版

  X 10

  L 50

  C 100

  D 500

  M 1000

  比如罗马数字2写成II,就是两个并列的1。12写成X II,也就是XII。27写成XXVII,也就是XX V II。

  通常,罗马数字中的小数字在大数字的右边。但也有特例,比如4不是写成IIII,而是IV。数字1在数字5的左边,表示的数字等于大数字5减去数字1得到的数字4。类似地,数字9表示为IX。这一特殊规则仅适用于以下六种情况:

  我可以放在V(5)和X(10)的左边代表4和9。

  x可以放在L(50)和C(100)的左边,代表40和90。

  c可以放在D(500)和M(1000)的左边,分别代表400和900。

  给定一个罗马数字,将其转换为整数。确保输入在1到3999的范围内。

  示例1:

  输入: III

  输出:3

  示例2:

  输入: IV

  输出:4

  示例3:

  输入: IX

  产出:9

  示例4:

  输入:“LVIII”

  产量:58

  解释:L=50,V=5,III=3。

  示例5:

  输入:“MCMXCIV”

  产量:1994年

  解释:M=1000,CM=900,XC=90,IV=4。

  def romanToInt(s: str) - int:

  d={I:1, IV:3, V:5, IX:8, X:10, XL:30, L:50, XC:80, C:100, CD:300, D:500, CM:800, M:1000}

  在enumerate(s)中返回I,n的sum(d.get(s[max(i-1,0):i 1],d.get(n))

  if __name__==__main__ :

  print(romanToInt(III ))

  这里需要特别注意的是,遍历传入的字符串N是字符串的元素,I是字符串的索引,s[max(i-1,0):i 1]取出字符串的最大值,d.get(n)根据字符串取出字典中对应的数字,D. Get (S [max (I-1,0): I 1],求这些值的和。

  这个解决方案很强大,但是不太好理解。

  里面有字典值:dict.get(key,default=None),后一个默认值通常不设置,但如果设置了,则意味着:当get无法获取key时,取后一个默认值。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: