【问题标题】:Multiple values per key (array or dictionary)?每个键(数组或字典)有多个值?
【发布时间】:2016-11-05 05:29:28
【问题描述】:

我正在为我在模拟仓库中的产品设计一个非常简单的数据库。

有一个代码(键)、一个描述(价值)、每包可用的数量(价值)、单个价格(价值)和包装的总成本(价值):

Product Number | Description | Pack | Individual Cost | Total 
01234567 | Black Ballpoint Pen | 4 | 0.50 | 2.00
12345670 | Football | 2 | 4.50 | 9.00

产品是关键,其他属性都是值。

我尝试使用字典结构,但由于它没有固定数量的字段,因此不起作用。

我还没有看到涉及多个领域的示例。 我还没有看到一个数组或字典示例具有多个字段来存储所有这些数据。

我想要这样的:

{01234567:("Black Ballpoint Pen", 4, 0.50, 2.00), 12345670:(Football, 2, 4.50, 9.00)}

这可能吗?

【问题讨论】:

  • 您本可以在比编写问题所用时间更短的时间内自己发现:是的,可以使用元组值的字典,正如解释器很乐意告诉您的那样。跨度>
  • @jonrsharpe 我试过了,但没用
  • 然后显示该代码的minimal reproducible example
  • 当您说它“无济于事”时,您的意思是您尝试了确切的 sn-p,包括前导零和变量名称,而不是“足球”键的字符串?
  • 在这种情况下,您是否使用 Python 2 以使前导零是八进制数,而不是立即出现语法错误?变量Football 是在任何地方定义的,还是应该是您忘记用引号括起来的字符串?

标签: python arrays sorting dictionary


【解决方案1】:

我想要这样的:

{01234567:("Black Ballpoint Pen", 4, 0.50, 2.00), 12345670:(Football,2, 4.50, 9.00)}

你试过了吗?您只需将Football 更改为"Football",即可正常工作:

>>> i = {01234567:("Black Ballpoint Pen", 4, 0.50, 2.00), 12345670:("Football",2, 4.50, 9.00)}
>>> i[01234567]
('Black Ballpoint Pen', 4, 0.5, 2.0)

字典可以保存任何类型的值 - 列表、字符串、数字、元组甚至其他字典。

【讨论】:

  • 我真的犯了愚蠢的错误@burhankhalid
  • 我有问题。添加您的代码,它说数字 01234567 是“无效令牌”这是怎么回事?
  • 这是因为以 0 开头的数字是八进制数。将01234567 替换为"01234567"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-05
  • 1970-01-01
  • 1970-01-01
  • 2014-05-21
  • 2011-06-09
  • 2021-12-24
  • 1970-01-01
相关资源
最近更新 更多