首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"&“如何在此代码中比较两种类型的数据?

问"&“如何在此代码中比较两种类型的数据?
EN

Stack Overflow用户
提问于 2022-11-26 17:29:24
回答 1查看 46关注 0票数 1

我正在阅读Python:"1.17.提取字典的子集“。我对下面代码示例中的"&“用法感到困惑。谁能帮我解释一下呢?

prices.keys() & tech_names在这里是如何工作的?

代码语言:javascript
复制
prices = {
    'ACME': 45.23,
    'AAPL': 612.78,
    'IBM': 205.55,
    'HPQ': 37.20,
    'FB': 10.75
}
tech_names = {'AAPL', 'IBM', 'HPQ', 'MSFT'}
p2 = {key: prices[key] for key in prices.keys() & tech_names}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-26 17:33:06

&操作符用于创建prices中的一组键和tech_names中的值的交集。

参见关于的一节

键视图是设置类似的,因为它们的条目是唯一的和可理解的。..。对于类似集合的视图,为抽象基类collections.abc.Set定义的所有操作都是可用的(例如,==、<或^)。

还请参阅intersection methods section for set

集和其他&.

返回一个包含集合和所有其他元素的新集合。

因此,代码只定义了tech_names集合中列出的符号的价格。

另一种拼写方法是在字典理解中使用if过滤器;这样做的优点是可以使用prices.items()同时访问符号和价格:

代码语言:javascript
复制
p2 = {symbol: price for symbol, price in prices.values() if symbol in tech_names}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74584284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档