【问题标题】:Python 3 - Array in ArrayPython 3 - 数组中的数组
【发布时间】:2014-02-17 09:25:46
【问题描述】:

我大约一周半前才开始学习 python3。现在这些书涵盖了列表、元组和目录。我希望我的问题不是愚蠢的,但我在任何地方都找不到答案。

比方说,我有一个包含人们年龄的名字列表:

Klaus, 34
Doris, 20
Mark, 44
Tina, 19

我想要的(以及我可以在 php 中做的 :-))是一个多维数组,例如

1st array(name=Klaus, age=34), 
2nd array(name=Doris, age=20), 
3rd array(name=Mark, age=44), 
4th array(name=Tina, age=19)

在 php 中看起来像:

$multiarray = array(array(name =>"Peter", age=>34),
                    array(name=>"Doris",age=>20),
                    array(name=>"Mark",age=>44),
                    array(name=>"Tina", age=>19));

如何在 python3 中做到这一点?

再次对一个可能很愚蠢的问题表示抱歉:-)

标记

【问题讨论】:

  • 为什么不只用一本字典呢? {'Peter': 34, 'Doris': 20, ...}
  • 我想做这样的事情:length = len(multiarray) i = 0 while i

标签: arrays python-3.x multidimensional-array


【解决方案1】:

在 Python 中,这可能是 listdictionaries:

multiarray = [{"name": "Peter", "age": 34}, ...]

例如彼得的年龄是

multiarray[0]["age"]

刚刚发现您的评论,请注意您可以这样做

for person in multiarray:
    print("{0[name]} is {0[age]} years old.".format(person))

手动增加索引 i 不是很 Pythonic:您可以:

  1. 直接遍历项目 (for item in lst);
  2. 使用enumerate获取项目和索引(for index, item in enumerate(lst));或
  3. 使用range 生成索引(for index in range(len(lst)))。

【讨论】:

  • 啊,这是有道理的。列表、元组和字典让我有点困惑 - 希望这会变得更好:-)
  • 我已更新我的答案以反映您对该问题的评论
  • 你是金矿 :) 感谢您帮助我。看来我必须得到另一本书,其中详细介绍了所有列表、元组和字典内容
  • 我找到了另一个解决方案:persons = {"Dieter":34, "Doris":20, "Petra":29, "Mark":24} print(persons) for name, age in persons.items(): print("{0} ist {1} Jahre alt".format(name, age)) 这对我来说非常适合:-)
  • 是的,如果您每个人只有一个参数,那将可以正常工作。您还可以使用字典字典:{'Mark':{'age': 24}, ...}` 允许每个人有多个参数(例如“职业”、“地址”...),甚至创建一个自定义的Person 类,允许向一个人添加特定的功能。
猜你喜欢
  • 1970-01-01
  • 2020-12-27
  • 2017-03-26
  • 2016-09-05
  • 2021-10-07
  • 1970-01-01
  • 2019-01-25
  • 2019-04-14
  • 1970-01-01
相关资源
最近更新 更多