У меня есть этот список:
[('1', '1')]
и я хочу добавить список с объектом dict, чтобы выглядеть так:
[('All', 'All'), ('1', '1')]
Я пытаюсь:
myList[:0] = dict({'All': 'All'})
Но это дает мне:
['All', ('1', '1')]
Что я делаю неправильно?
Используйте слова items()
словаря, чтобы получить ключ, значение и добавить их в список:
lst = [('1', '1')]
lst = list({'All': 'All'}.items()) + lst
print(lst)
# [('All', 'All'), ('1', '1')]
Примечание: {'All': 'All'}
- это словарь, поэтому dict({'All': 'All'})
в вашем коде не нужно.
Когда вы используете dict
в качестве итерации, вы перебираете только свои ключи. Если вы хотите итерации по своим парам ключ/значение, вам нужно использовать представление dict.items
.
l = [('1', '1')]
d = dict({'All': 'All'})
print([*d.items(), *l])
# [('All', 'All'), ('1', '1')]
Синтаксис *
доступен в Python 3.5 и более поздних версиях.
l[:0] = d.items()
также работает
Вы можете ссылаться на приведенную ниже функцию для добавления любого dict в качестве элементов списка в уже существующий список. Вам просто нужно отправить новый dict, который вы хотите добавить со старым списком, уже присутствующим с вами.
def append_dict_to_list(new_dict,old_list):
list_to_append = list(new_dict.items())
new_list = list_to_append + old_list
return new_list
print (append_dict_to_list({'All':'All'},[('1', '1')]))
PS: Если вы хотите, чтобы новый dict был добавлен после существующего списка, просто измените последовательность в коде как new_list = old_list + list_to_append
Для ответа, подобного [('All', 'All'), ('1', '1')]
, выполните:
myList = [('1', '1')]
myList = [('All', 'All')] + myList
Для получения дополнительной информации обратитесь к этому.
Вы также можете посмотреть ниже.
>>> myList = [('1', '1')]
>>>
>>> myList[:0] = dict({'All': 'All'}).items()
>>> myList
[('All', 'All'), ('1', '1')]
>>>
(key, value)
кортеж вашего dict был вставлен в список?dict({'All': 'All'})
является избыточным.