鉴于我是Python的新手,并且我是社会科学领域的背景,所以我将尽力解释这个问题,在此先感谢您的宝贵帮助!
我有一个词典列表,用于存储在线食谱的信息。对于特定的键['ingredients']
,我有一个字符串列表作为值。我想通过删除空字符串来清理列表。
这是我的数据的示例:
data = [{'title': 'Simple Enchiladas Verdes',
'prep_time': '15 min',
'cook_time': '30 min',
'ingredients': ['', 'chicken', '','','','tomato sauce']
},
{...}, {...}]
我想要获得的关键“成分”的结果是:
data = [{'title': 'Simple Enchiladas Verdes',
'prep_time': '15 min',
'cook_time': '30 min',
'ingredients': ['chicken','tomato sauce']
},
{...}, {...}]
我尝试了不同的代码:
for dct in data:
for lst in dct['ingredients']:
for element in lst:
if element == '':
dct['ingredients'] = lst.remove(element)
for dct in current_dict:
for lst in dct['ingredients']:
dct['ingredients'] = list(filter(lambda x: x!=''))
for dct in data:
for lst in dct['ingredients']:
for x in lst:
if x == "":
dct['ingredients'] = lst.remove(x)
但是他们都没有解决我的问题。
你很亲密 您只需要做:
for dct in data:
dct['ingredients'] = list(filter(lambda x: x != '', dct['ingredients']))
这里发生的是,对于每一个字典dct
中data
,你把dct['ingredients']
它传递给通过filter
功能,与谓语lambda x: x != ''
。结果是“可迭代”,从中可以一次获得一个元素。然后list
,您可以使用它来获取正确的列表,然后将结果分配回dct['ingredients']
以替换原始列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句