Python字典推导式疑问:如何理解`- removeKeys`部分?
字典推导式中
- removeKeys的作用解析 首先你看到的完整代码应该是这样的:
{k: D[k] for k in D.keys() - removeKeys}
核心部分拆解:D.keys() - removeKeys
在Python 3里,D.keys()返回的是dict_keys对象,它和集合一样支持集合运算。这里的-是差集运算符,作用是从原字典的所有键里,剔除掉removeKeys中包含的键,最终得到一个新的键集合——只保留原字典里不在removeKeys中的键。
举个实际例子:
- 原字典
D = {'name': 'Alice', 'age': 25, 'city': 'NY'} removeKeys = {'age', 'city'}- 那么
D.keys() - removeKeys的结果就是{'name'}
整个推导式的最终结果
遍历上面得到的键集合,把原字典中对应的键值对取出来,生成一个不包含removeKeys中指定键的新字典。
用上面的例子,最终生成的字典就是{'name': 'Alice'}。
补充说明
如果removeKeys是列表、元组这类非集合类型,建议先转成集合(比如set(removeKeys))再做差集运算,因为集合的查找和运算效率比列表高很多。
内容的提问来源于stack exchange,提问作者trt
相关产品推荐
相关产品推荐

