Многомерный диктант Python и список вместе с упорядоченным индексом

#python #list

#питон #Список

Вопрос:

Я пытаюсь создать многомерный dict и список в Python, где первая запись уникальна (dict), и внутри этой записи может быть несколько записей (list).

Например (диктант со списком):
{'0001': ['Value 1 for id 0001', 'Value 2 for id 0001', 'Value 3 for id 0001']}

Это сработало бы, как бы я ни хотел иметь возможность получить доступ к моему dict / list с помощью чего-то вроде этого: myList[0][1] и я хотел бы, чтобы он вернул 'Value 2 for id 0001'

Я не совсем уверен, куда идти дальше, и я начинаю думать, что я понял все это неправильно, поскольку я использую a dict , чтобы иметь возможность создавать уникальную первую запись и вторую запись list с несколькими значениями.

 queue = {}

def add_to_dict(dict, key, values):
    """Append multiple values to a key in dict"""
    if key not in dict:
        dict[key] = list()
    dict[key].extend(values)
    return dict

add_to_dict(queue, '0001', ['Value 1 for id 0001'])
add_to_dict(queue, '0001', ['Value 2 for id 0001'])
add_to_dict(queue, '0001', ['Value 3 for id 0001'])

res = {key: queue[key] for key in queue.keys() amp; {'0001'}}
print(res)
 

Выходной сигнал:
{'0001': ['Value 1 for id 0001', 'Value 2 for id 0001', 'Value 3 for id 0001']}

Как я могу перейти отсюда, чтобы иметь доступ 0001 к и index 1 ?

 print(queue[0][1]) # I want this to return "Value 2 for id 0001"
 

Вышесказанное не сработает, но это та часть, которую я хотел бы заставить работать.

Первый [] должен быть уникальным, но должен содержать несколько значений во втором списке.

Дайте мне знать в комментариях, если я что-то упустил, и я обновлю вопрос.

Комментарии:

1. list(queue.values())[0][1] ?

2. @анон01 well…to будьте по-настоящему быстрыми — используйте C с идеальной оптимизацией и прямым доступом к памяти — c вам поможет

3. @anon01 автор на самом деле не уточнил, чего он хочет, остальное — просто предположения

4. @Nick ваш комментарий фактически решил все это. Спасибо!

5. «Это сработало бы, как бы мне ни хотелось иметь доступ к моему dict / list с помощью чего-то вроде этого: myList[0][1] и я хотел бы, чтобы это вернулось 'Value 2 for id 0001' » Никогда ничего не говорилось о производительности ^^

Ответ №1:

используйте list вместо dict…

 queue = [['Value %d for id d'%(n 1,i 1) for n in range(3)] for i in range(1)]
print(queue[0][1])

'Value 2 for id 0001'
 

Вы можете использовать dict, но кажется излишним:

 queueDict = {i 1:['Value %d for id d'%(n 1,i 1) for n in range(3)] for i in range(1)}
print(queue[0][1])

'Value 2 for id 0001'