从词典列表中删除空格

时间:2017-07-20 06:46:14

标签: python whitespace

我正在尝试从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()}

但我无法让它为我的数据结构工作,因为我恐怕是一个蟒蛇新手。

2 个答案:

答案 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() }