用python在元组中存储多个键值?

2024-04-28 08:10:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我是Python新手,还在学习。我想知道在元组中存储多个键值是否有一个标准的“最佳实践”。下面是一个例子:

我有一个名为'red'的值,它的值是3,我需要将它除以一个数(比如10)。我需要存储3个值:Red(名称)、3(除以10的次数)和1(余数)。还有其他类似的值也需要包括在内,因此这是红色的,但蓝色、绿色等的结果相同(每个标签的数字不同)。在

我读了很多资料,我认为我发现的方法是使用嵌套列表,但我正在为10亿条记录做这种类型的存储(我需要搜索它,所以我想可能嵌套的任何东西都会减慢我的速度)。在

我试图创建类似{'red':3:1,...}的东西,但它的语法不正确,我正在考虑在键值中添加一个分隔符,然后拆分它,但不确定这是否有效(例如{'red':3a1,..},然后按字母a进行解析)。在

我想知道是否有更好的方法来存储这个,或者嵌套元组是我唯一的解决方案?我用的是python2。在


Tags: 方法名称标准red标签次数例子键值
3条回答

使用元组。例如:

`('red', 3, 1)`

元组的语法是:(a,b,c)。在

如果你想要一个包含多个值的字典,你可以用一个列表作为值:{'red':[3,1]}。在

您可能还需要考虑named tuples,甚至类。这将允许您命名字段,而不是按索引访问它们,这将使代码更加清晰和结构化。在

I read around and I think way I found was to use nested lists, but I am doing this type of storage for a billion records(and I'll need to search through it so I thought maybe nested anything might slow me down).

如果你有10亿条记录,你可能应该保存数据(例如在数据库中)。如果您试图同时将所有数据保存在内存中,可能会耗尽内存。在

也许你指的是字典而不是元组?在

{'red': [3,1], 'blue': [2,2]}

如果您试图存储键/值对,最好的方法是将它们存储在字典中。如果每个键需要多个值,只需将这些值放入一个列表中。在

我不认为你会想在元组中存储这样的东西,因为元组是不可变的。因此,如果决定更改商和余数(1,3)的顺序,而不是(3,1),则需要创建新的元组。而对于列表,您可以简单地重新排列顺序。在

相关问题 更多 >