Как найти имя списка в списке списков вместо его значения? - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь найти имя списка в списке списков (есть ли конкретное имя для «списка списков»?).

Например, у меня есть следующие списки:

x= ["a","b"]
y= ["c","d"]
z= [x,y] 

Если я теперь хочу узнать, как называется первый список в списке "z", я бы попробовал так:

print(z[0])

Но вместо "x" я получаю значениеиз х ("а", "б")

  • Как я могу получить вывод "х"?

Ответы [ 4 ]

0 голосов
/ 20 декабря 2018

список является изменяемым типом данных в python.поэтому при

x = ["a", "b"]

python выделит некоторую память и сохранит адрес в x.так что x внутренне что-то вроде:

<List with data at 0x123456789>

когда вы делаете z, python выделяет некоторую память и сохраняет адрес в z, затем он сохраняет адреса x и y в памяти z.так что z внутренне:

[<List with data at 0x123456789>, <List with data at 0x987654321>]

теперь вы можете видеть, что нет информации об имени переменной, которая также хранит адрес 0x123456789

Резюме: youневозможно получить имя переменной объекта списка.

0 голосов
/ 20 декабря 2018

Использование имени переменной в качестве вывода невозможно, если вы не измените некоторые стратегии в своем коде, например:

x = ["a", "b"]
y = ["c", "d"]
z = {'x': x, 'y': y}

с использованием словарей может лучше подойти для вашегопроблема.Затем вы можете найти значение ["a", "b"] и получить имя 'x'.

0 голосов
/ 20 декабря 2018

Вы хотите использовать словарь вместо списка.Если список - это просто перечисление значений, словарь - это структура данных ключ-значение.

Вот как ваш пример будет выглядеть как литерал словаря:

{
    "x": ["a", "b"],
    "y": ["c", "d"],
}

В отличие от спискаОднако словарь не сохраняет порядок элементов!Если у вас было приложение, в котором вам нужно было сохранить заказ, вы можете использовать OrderedDict . ОБНОВЛЕНИЕ: Этот параграф больше не соответствует истине Python 3.7.

0 голосов
/ 20 декабря 2018

Может быть, просто поставить имя списка в начале каждого списка и вместо этого использовать z [0] [0], чтобы получить имя?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...