我目前有这段代码:
name_set = set()
reader = [{'name':'value1'}, {'name':''}, {'name':'value2'}]
for row in reader:
name = row.get('name', None)
if name:
name_set.add(name)
print(name_set)
在实际代码中,reader
是一个 DictReader,但我使用带有字典的列表来表示它。
请注意,if name:
将检查:
- 字典中存在空字符串(因此
""
) - 当关键字不在字典中时不存在
尽管我认为这段代码易于阅读,但我想知道是否有更短的方法,因为这段代码只有 6 行,可以简单地从 dict
中提取值并将它们保存在 设置
。
最佳答案
您现有的代码没问题。
但由于您要求的是“简短”方式,您可以只使用集合理解/算术:
>>> reader = [{'name':'value1'}, {'name':''}, {'name':'value2'}]
>>> {d['name'] for d in reader} - {''}
{'value1', 'value2'}
关于python - 仅当其字符串值不为空时才将字典项添加到集合中的简便方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51547252/