如何在Python中获取字典中每个字符串索引匹配键的值

时间:2015-07-04 13:35:37

标签: string python-2.7 dictionary

str ='字符串'

new_D = {' r':1,':1,' t':1,' r' :3,'我' :4}

如何通过匹配'字母键'来获取分配给字典中值的字符串中的每个字母?然后总结一下这些值?

由于

2 个答案:

答案 0 :(得分:1)

s = 'strings' #Don't name a variable str, that shadows the builtin str

new_D = {'r': 1, 's': 1, 't': 1, 'r' : 3, 'i' : 4 }

sum_of_chars = sum([newD.get(k,0) for k in s]) #assuming 0 as default for "not in dictionary"

这利用了以下事实:

  1. 字符串是可迭代的。 for i in s: print(i)会单独打印每个角色。
  2. 字典有.get(key[,default]) 1,可以使用选项参数“如果密钥不存在,则返回此值。
  3. 为了简洁起见,我在list comprehension上使用了内置的sum。简洁既可以是美德也可以是恶习,但是,嘿,在你知道它们是什么之后,一个列表组合通常仍然具有可读性。

答案 1 :(得分:0)

string = 'strings'

new_D = {'r': 1, 's': 1, 't': 1, 'r' : 3, 'i' : 4 }

sum_of_chars = 0
for character in string:
    if character in new_D:
        sum_of_chars += new_D[character]
    else:
        sum_of_chars += 1 # Default?

print(sum_of_chars)
顺便说一句,你不应该使用名称str,因为它会影响内置的str并且你的字典中存在错误。它包含两次入口r,没有意义。