我怎样才能简化这个表达式,而不是重复或将它赋给一个新的变量呢?
dict['key'] = dict['key'][0:100]
在 dart 中
map.update('key', (v)=> v.substring(0,100));
更新
我在Python中看到了一个update方法,可以用作
dict.update({'key': new_value})
我想要的是某种回调函数,其中包含指向字典原始值的指针。
更新2
巨蟒
dict.update({'key': new_value})
我想要的是
dict.update({'key' *self[0,100]})
其中*self
是原始值,而不是使用dict.get('key')
3条答案
按热度按时间bz4sfanl1#
您可以使用
dict.update()
:结果:
我不认为有必要寻找另一种方法--这个方法已经很好了。我建议的方法也使用了重复,但看起来更难阅读。
bogh5gae2#
也许你可以使用dict理解?我认为它非常简洁,可以在一行中更新每个值。
使用Python 3
vddsk6oq3#
你不能在没有赋值的情况下改变字典中的字符串值,因为在Python中字符串是不可变的。如果你想获取字符串的前100个字符,你需要创建一个新的字符串。
如果你不想自己写,你可以使用
toolz.update_in
。输入是字典,列表中的键和回调函数。请注意,您必须将返回值重新分配给
my_dict
,因为update_in
不会修改您的输入字典。