2014-02-17 5 views
0

Я только начал изучать python3 около полутора лет назад. Теперь книги охватывают списки, кортежи и каталог. Надеюсь, мой вопрос не в том, чтобы глупо, но я не мог найти ответ нигде.Python 3 - Array in Array

Скажем, у меня есть список имен с возрастами людей:

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?

Опять извиняюсь за глупый вопрос, наверное :-)

Марк

+0

Почему бы не использовать только один словарь? '{ 'Питер': 34 'Doris': 20, ...}' –

+0

Я хотел бы сделать что-то вроде этого: длина = Len (multiarray) я = 0 в то время как я <длина: печать ("{name} {age} years old" .format (multiarray [i] ["name"], multiarray [i] ["age"])) i + = 1 – Mark

ответ

1

В Python, это, вероятно, будет list из dict ionaries:

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))).
+0

Ах, это имеет смысл. Списки, кортежи и словари путают меня немного. Надеюсь, что это улучшится :-) – Mark

+0

Я обновил свой ответ, чтобы отразить ваш комментарий к вопросу – jonrsharpe

+0

, что вы золотая ручка :) Спасибо, что помогли мне. Кажется, мне нужно получить еще одну книгу, в которой более подробно рассказывается обо всем списке, тестелях и словарных материалах. – Mark