在Python中如何在元组中存储多个键值?
我刚开始学Python,还是个新手。我想知道有没有什么标准的方法来存储多个键值在一个元组里。举个例子:
我有一个值叫做 'red'
,它的值是 3
,我需要把它除以一个数字(比如说10)。我需要存储3个值:红色(名字)、3(它能被10整除的次数)和1(余数)。还有其他类似的值也需要存储,所以这只是红色的情况,蓝色、绿色等也会有类似的结果(每个标签的数字不同)。
我查了一下,发现可以用嵌套列表来实现,但我需要处理十亿条记录(而且还要搜索这些记录),所以我觉得嵌套的结构可能会让我变得很慢。
我试着创建像 {'red':3:1,...}
这样的结构,但这不是正确的语法。我在考虑在键值中加个分隔符,然后再分开,但不确定这样做是否高效(比如 {'red':3a1,..}
,然后通过字母a来解析)。
我想知道有没有更好的方法来存储这些数据,还是说嵌套元组是我唯一的选择?我在用Python 2。
3 个回答
也许你是想说字典,而不是元组吧?
{'red': [3,1], 'blue': [2,2]}
如果你想存储键值对,最好的方法就是用字典。如果你每个键需要多个值,可以把这些值放在一个列表里。
我觉得你不应该把这些东西存储在元组里,因为元组是不可变的。比如说,如果你想把商和余数的顺序从(1, 3)改成(3, 1),你就得创建新的元组。而用列表的话,你可以直接调整顺序。
使用元组。比如说:
`('red', 3, 1)`
元组的写法是:(a,b,c)
。
如果你想要一个字典里面有多个值,可以把值设置成一个列表,比如:{'red':[3,1]}
。
你可能还想了解一下命名元组,或者甚至是类。这样你就可以给字段起名字,而不是通过索引来访问,这样代码会更清晰、更有条理。
我查了一下,发现可以用嵌套列表来实现,但我现在要存储十亿条记录(而且还需要搜索这些记录,所以我觉得嵌套的东西可能会让我变慢)。
如果你有十亿条记录,最好把数据存储起来(比如放在数据库里)。如果你试图把所有数据都放在内存里,可能会导致内存不够用。