У меня есть список списков
ls = [[1649534580000, 165.76, 165.86, 165.57, 165.57, 27.45, 10], [1649534640000, 165.6, 165.69, 165.42, 165.46, 44.1, 23]]
в каждом из подсписков я хотел бы вставить имя в конце, например...
names = ['Dave', 'Bob']
ls = [[1649534580000, 165.76, 165.86, 165.57, 165.57, 27.45, 10, 'Dave'], [1649534640000, 165.6, 165.69, 165.42, 165.46, 44.1, 23, 'Bob']]
какой самый простой способ сделать то, что можно масштабировать, когда список списков становится очень большим?
где хранятся имена?
@DaveTheRave, пожалуйста, взгляните на: stackoverflow.com/help/on-topic
Попробуйте что-то вроде этого:
ls = [[1649534580000, 165.76, 165.86, 165.57, 165.57, 27.45, 10], [1649534640000, 165.6, 165.69, 165.42, 165.46, 44.1, 23]]
new_vals = ['Dave', 'Bob']
# Create a function
# Accept existing list and new values (list) as arguments
def add_new_elems(_my_list, _new_vals):
assert len(_my_list) == len(new_vals), 'Length of existing list and new values is not same'
# Utilize list comprehension to append data
[_my_list[i].append(_new_vals[i]) for i in range(len(_my_list))]
return _my_list
print(add_new_elems(ls, new_vals))
######
[[1649534580000, 165.76, 165.86, 165.57, 165.57, 27.45, 10, 'Dave'], [1649534640000, 165.6, 165.69, 165.42, 165.46, 44.1, 23, 'Bob']]
Вы не должны использовать списки для побочных эффектов. Вы выделяете список без причины и просто выбрасываете его.
@Mark: я не думал о побочных эффектах. Спасибо, я прочитаю побочные эффекты.
Как правило, если вы хотите добавить элемент в список внутри списка, вы можете просто зациклить его и append(item)
в (конец) списка.
for item in ls:
item.append('Dave')
Поскольку вы пытаетесь работать с двумя списками одновременно, вы можете использовать встроенную функцию молния.
ls = [[1649534580000, 165.76, 165.86, 165.57, 165.57, 27.45, 10], [1649534640000, 165.6, 165.69, 165.42, 165.46, 44.1, 23]]
names = ['Dave', 'Bob']
for list_item, name in zip(ls, names):
list_item.append(name)
Это работает со списками одинаковой длины. Если есть риск, что ваши списки имеют разный размер, попробуйте использовать ответ на этот вопрос.
Благодарю. Я отредактировал вопрос, я не пытаюсь сопоставить 2 списка одинаковой длины. Мой реальный жизненный сценарий представляет собой очень длинный список списков, к каждому из которых я хочу добавить имя.
@DaveTheRave Если имя такое же, все, что вам нужно сделать, это append
для каждого списка (я обновил ответ этим решением). Или вы работаете с разными размерами списков?
Вы пытались использовать цикл, чтобы внести изменения в каждый список в списке списков?