gpt4 book ai didi

python - 如何在 Python 中构造具有多个特征的元素

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:02 26 4
gpt4 key购买 nike

如果我有一组元素(A、B、C、D...),它们都具有两个或更多特征(每个都有颜色、形状等...),我如何制作一个结构,以便我可以轻松地请求所有绿色元素或所有圆形元素的列表?
我想过使用字典,但我不知道这是否是实现该目标的最有效方法。我知道每个对象的每个特性的值永远不会改变。特征不多,对象却很多。

这是一个集合的样子:

test = {'ob1': {'color': ['green'], 
'shape': 'round'},
'ob2': {'color': ['red'],
'shape': 'round'},
'ob3': {'color': ['green', 'yellow'],
'shape': 'cubic'}
}

如果我想获取所有绿色对象,我想要一个简单的方法来获取包含 [ob1, ob2] 的列表。但与此同时,我希望仍然能够轻松找到给定对象的属性(例如,我想知道 obj1 是什么颜色和形状)。

最佳答案

您可以使用 namedtuple,这是一种高效的数据格式。

from collections import namedtuple

Element = namedtuple('Element', 'color size id name')

ELEMENTS_DB = {'e1':Element('green', 12, 34, 'jack'),
'e2':Element('blue', 132, 334, 'dan'),
'e3':Element('green', 142, 434, 'ben')}

# get green elements
green_elements = [e for e in ELEMENTS_DB.values() if e.color == 'green']
print(green_elements)
# get 'e3'
print(ELEMENTS_DB['e3'])

输出:

[Element(color='green', size=12, id=34, name='jack'), Element(color='green', 
size=142, id=434, name='ben')]
Element(color='green', size=142, id=434, name='ben')

关于python - 如何在 Python 中构造具有多个特征的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54770967/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com