我正在尝试从Python 3.5中的字典列表中删除空格。
我有这个:
lst_of_dicts = [{'code': 'AB DE', 'score': 30},
{'code': 'DE FG', 'score': 40}]
想要这个:
lst_of_dicts = [{'code': 'ABDE', 'score': 30},
{'code': 'DEFG', 'score': 40}]
其他answers建议.strip()
使用dict理解,例如:
clean_d = { k:v.strip() for k, v in d.iteritems()}
但我无法让它为我的数据结构工作,因为我恐怕是一个蟒蛇新手。
答案 0 :(得分:5)
不要流汗。只需使用for
循环:
In [693]: for d in lst_of_dicts:
...: d['code'].replace(' ', '')
...:
In [695]: lst_of_dicts
Out[695]: [{'code': 'ABDE', 'score': 30}, {'code': 'DEFG', 'score': 40}]
此解决方案非常适合您的数据。对于适用于子词典中所有字符串项的一般解决方案,您可以考虑迭代嵌套循环中的键:
for d in lst_of_dicts:
for k in d:
if isinstance(d[k], str):
d[k].replace(' ', '')
答案 1 :(得分:1)
也许这会做你想要的。但是strip不能删除字符串中的空间。
$http.post(APP.API + 'contacts', 'data=' + JSON.stringify(this.formData)).
success(function(data, status, headers, config) {
}).
error(function(data, status, headers, config) {
// debugger;
Notification.error(data.msg);
});
所以像这样改变strip_string()
def strip_string(value):
if isinstance(value, str):
value = value.strip()
return value
clean_d = { k: strip_string(v) for k, v in d.iteritems() }