You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询Python中prices.keys()与tech_names间&运算符的工作原理

解释prices.keys() & tech_names的工作原理

这段代码里的&是集合交集运算符,要理解它的作用,拆成两部分看就清楚了:

1. prices.keys()的本质

在Python 3中,字典的keys()方法返回的不是列表,而是dict_keys对象——这是字典键的动态视图,它具备集合的核心特性:元素唯一、可哈希,并且支持所有集合操作(交集、并集、差集等)。

放到你的例子里,prices.keys()就等价于一个包含所有字典键的类集合结构:{'ACME', 'AAPL', 'IBM', 'HPQ', 'FB'}。

2. &运算符的作用

&在这里执行交集运算,会找出两个操作数中共同存在的元素。你的代码里tech_names是标准集合{'AAPL', 'IBM', 'HPQ', 'MSFT'},它和prices.keys()做交集后,得到的结果是两者共有的键:{'AAPL', 'IBM', 'HPQ'}。

3. 最终效果

字典推导式{key: prices[key] for key in ...}会遍历这个交集结果,把对应的键值对提取出来生成新字典p2,最终p2的内容是:

{'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20}

额外优势

这种写法比先把keys()转成列表再循环判断(比如[key for key in prices if key in tech_names])效率更高——集合的交集操作基于哈希表实现O(1)查找,而列表的in判断是O(n)遍历,数据量越大,性能差距越明显。

内容的提问来源于stack exchange,提问作者Xiaokuan Wei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 23:15:44