在Python中如何从字典值中减去?
我必须从字典值中减去在Python中如何从字典值中减去?,python,Python,我必须从字典值中减去 list1 = {'i': 1, 'k': 1, 'j': 1, 'o': 2, 'q': 1, 's': 1, 'x': 1, 'z': 1} string = 'ikjoosgx' for letter in string: I NEED TO DECREASE list1 key of same name as letter VALUE BY 1. DIPSIT! 这很简单: d[key] -= 1 只需迭代关键点: for letter in string:
list1 = {'i': 1, 'k': 1, 'j': 1, 'o': 2, 'q': 1, 's': 1, 'x': 1, 'z': 1}
string = 'ikjoosgx'
for letter in string:
I NEED TO DECREASE list1 key of same name as letter VALUE BY 1. DIPSIT!
这很简单:
d[key] -= 1
只需迭代关键点:
for letter in string:
d[letter] -= 1
请注意,不要将string
用作变量名,因为它也是标准模块的名称
如果其中一个字母不在字典里,这就行不通了。在这种情况下,可以将try/except
块放入循环中
for letter in my_string:
try:
list1[letter] -= 1
except KeyError:
pass # your error handling goes here
如果需要默认值,可以将pass
替换为:
list1[letter] = default_value
或者你可以直接使用。如果我答对了你的问题,你想要这个:
list1 = {'i': 1, 'k': 1, 'j': 1, 'o': 2, 'q': 1, 's': 1, 'x': 1, 'z': 1}
string = 'ikjoosgx'
for letter in string:
if letter in list1:
list1[letter] -= 1
print list1
>>> {'q': 1, 's': 0, 'z': 1, 'i': 0, 'x': 0, 'k': 0, 'j': 0, 'o': 0}
另一种解决方案,这次使用的是好的旧版本:
你能详细说明一下你在这两个小时里试过的方法吗?但是伙计,这不管用,我已经打了个平手=(好的,我会在第二秒用AnswerWare再次尝试brb!字符串中有一个'g',它不是列表1中的键,因此您将得到一个KeyErrorHey,没问题!Thx,它工作了。如果不是,我们可以始终使用默认数字。因此,是的,它现在似乎工作正常=)我认为最好将
try/except
放在循环中。如何处理字符串中的字母“g”?“g”不是dict中的键!正如其他人所说,使用try-catch语句
for letter in string:
list1[letter] = list1[letter] - 1
list1 = {'i': 1, 'k': 1, 'j': 1, 'o': 2, 'q': 1, 's': 1, 'x': 1, 'z': 1}
string = 'ikjoosgx'
for letter in string:
if letter in list1:
list1[letter] -= 1
print list1
>>> {'q': 1, 's': 0, 'z': 1, 'i': 0, 'x': 0, 'k': 0, 'j': 0, 'o': 0}
list1 = {'i': 1, 'k': 1, 'j': 1, 'o': 2, 'q': 1, 's': 1, 'x': 1, 'z': 1}
string1 = 'ikjoosgx'
for letter in string1:
list1[letter] = list1.setdefault(letter, 0) - 1