我有这本词典:
self.rewards = {'D': -1,'0':100,'&':-100}
'D'
是标准奖励的关键-1
。
'0'
是获得良好回报的关键100
。
'&'
是奖励不良的关键-100
。
现在我需要在GOOD和BAD奖励是关键的模式下更改奖励系统,例如:
self.rewards = {'D': -1, key : key}
#Example:
#next.tipo is 'D'
self.rewards[next.tipo] #is -1
#next.tipo is '10500'
self.rewards[next.tipo] #is 10500
#next.tipo is '-4500'
self.rewards[next.tipo] #is -4500
那可能吗?
我想的其他方式:
self.rewards = {'D': -1, else : key}
上面的内容:如果密钥为'D'
,则值为-1
,ELSE值为密钥本身。
答案 0 :(得分:1)
为什么不建立一个功能:
def getRewards(val):
return -1 if val=='D' else val
In [195]: getRewards(100)
Out[195]: 100
In [196]: getRewards('D')
Out[196]: -1
答案 1 :(得分:0)
是。这是可能的。
>>> keys = ['hello','D']
>>> d = dict()
>>> for k in keys:
... if k == 'D':
... d[k] = -1
... else:
... d[k] = k
...
>>> d
{'hello': 'hello', 'D': -1}
答案 2 :(得分:0)
用词汇理解:
self.rewards = {k: k for k, v in self.rewards.items()}
self.rewards['D'] = -1
答案 3 :(得分:0)
您可以使用get
- dicts方法:
reward = int(self.rewards.get(next.tipo, next.tipo))
答案 4 :(得分:0)
您可以使用以下
t ={v: v for k, v in self.rewards.items() if k is not 'D'}
t['D'] = self.rewards.get('D')