繁体   English   中英

在python中使用2个字典

[英]Using 2 dictionaries in python

我正在尝试创建一个代码,如果用户在输入中键入他的名字和中间名的缩写,它将把两个字典号加在一起。

对于我想要的名字值:

    d['a'] = 0
    d['b'] = 60
    d['c'] = 100
    d['d'] = 160
    d['e'] = 200
    d['f'] = 240
    d['g'] = 280
    d['h'] = 320
    d['i'] = 400
    d['j'] = 420
    d['k'] = 500
    d['l'] = 520
    d['m'] = 540
    d['n'] = 620
    d['o'] = 640
    d['p'] = 660
    d['q'] = 700
    d['r'] = 720
    d['s'] = 780
    d['t'] = 800
    d['u'] = 840
    d['v'] = 860
    d['w'] = 880
    d['x'] = 940
    d['y'] = 960
    d['z'] = 980

我想要的中间名初始值:

    d['a'] = 1
    d['b'] = 2
    d['c'] = 3
    d['d'] = 4
    d['e'] = 5
    d['f'] = 6
    d['g'] = 7
    d['h'] = 8
    d['i'] = 9
    d['j'] = 10
    d['k'] = 11
    d['l'] = 12
    d['m'] = 13
    d['n'] = 14
    d['o'] = 14
    d['p'] = 15
    d['q'] = 15
    d['r'] = 16
    d['s'] = 17
    d['t'] = 18
    d['u'] = 18
    d['v'] = 18
    d['w'] = 19
    d['x'] = 19
    d['y'] = 19
    d['z'] = 19

到目前为止的代码:

first_name = raw_input("what is your first name?: ")
middle_initial = raw_input("What is your middle initial?: ")

    #First Name Initial Values
    d = {}
    d['a'] = 0
    d['b'] = 60
    d['c'] = 100
    d['d'] = 160
    d['e'] = 200
    d['f'] = 240
    d['g'] = 280
    d['h'] = 320
    d['i'] = 400
    d['j'] = 420
    d['k'] = 500
    d['l'] = 520
    d['m'] = 540
    d['n'] = 620
    d['o'] = 640
    d['p'] = 660
    d['q'] = 700
    d['r'] = 720
    d['s'] = 780
    d['t'] = 800
    d['u'] = 840
    d['v'] = 860
    d['w'] = 880
    d['x'] = 940
    d['y'] = 960
    d['z'] = 980

    lower = first_name.lower()
    first_initial = lower[0]

    if first_initial in d:
        print d[first_initial]

例:

例如,如果我输入Josh作为名字的名字,输入J作为中间名字的名字的名字,输出应该是430。

如果您对我如何获得430感到困惑,我将420和10加在一起,因为420是第一个名字“ josh”的首字母缩写“ j”的值,而10是中间名缩写的“ j”值。

我建议对两个列表使用zipdict ):

from string import lowercase as abc

d1 = dict( zip(abc, [0, 60, 100, 160, ...]) )
d2 = dict( zip(abc, [1,2,3,4,5,...]) )

...

首先制作2个词典,分别用于名字和中间名评分,

firstNameScore = {'a':0, 'b':60, 'c':100, and so forth}
middleNameScore = {'a':1, 'b':2, 'c':3, and so forth}
first_name = raw_input("what is your first name?: ")
middle_initial = raw_input("What is your middle initial?: ")
# Access the value of initials from dictionaries.
score = firstNameScore[first_name[0]] + middleNameScore[middle_initial]
print score
d = {}
d['a'] = 0
d['b'] = 60
d['c'] = 100
d['d'] = 160
d['e'] = 200
d['f'] = 240
d['g'] = 280
d['h'] = 320
d['i'] = 400
d['j'] = 420
d['k'] = 500
d['l'] = 520
d['m'] = 540
d['n'] = 620
d['o'] = 640
d['p'] = 660
d['q'] = 700
d['r'] = 720
d['s'] = 780
d['t'] = 800
d['u'] = 840
d['v'] = 860
d['w'] = 880
d['x'] = 940
d['y'] = 960
d['z'] = 980

dict = {}
dict['a'] = 1
dict['b'] = 2
dict['c'] = 3
dict['d'] = 4
dict['e'] = 5
dict['f'] = 6
dict['g'] = 7
dict['h'] = 8
dict['i'] = 9
dict['j'] = 10
dict['k'] = 11
dict['l'] = 12
dict['m'] = 13
dict['n'] = 14
dict['o'] = 14
dict['p'] = 15 
dict['q'] = 15
dict['r'] = 16
dict['s'] = 17
dict['t'] = 18
dict['u'] = 18
dict['v'] = 18
dict['w'] = 19
dict['x'] = 19
dict['y'] = 19

first_name = raw_input("what is your first name inital?: ")
middle_initial = raw_input("What is your middle initial?: ")

if first_name in dict.keys():
  value_to_add  = dict.get(first_name)

if middle_initial in d.keys():
 next_value_to_add = d.get(middle_initial)

print value_to_add,next_value_to_add
values_added = value_to_add + next_value_to_add
print values_added

我想这就是您要寻找的...只是您不能拥有两个同名的字典,并且可以检查和更改内容...并且您使用了数组([] = array)({} = dictionary)

乐意效劳 !

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM