Я новичок в Python и у меня проблемы с выполнением задания для задания. Я определил функцию, которая работает хорошо, за исключением следующей области: я работаю со списком из 10 строк, и мне нужно вставить каждую строку из этого списка только один раз в начало соответствующего рандомизированного списка из 10 строк, которые я сделанный для файла, снятого с терминала с помощью sys.argv
(имеется в виду, что в моем списке соответствует 10 файлов с одной строкой, соответствующей каждому файлу). Я знаю, что мне нужно использовать метод .insert(0, new_string)
, чтобы вставить новую строку из моего списка из 10 строк.Как прокрутить список, используя каждый элемент из списка только один раз, чтобы вставить в начало другого списка в Python?
Это отрывок из моей функции, показывая, что я пытался до сих пор для достижения этой цели:
randomlist = (list(map(choice, old_list)))
new_list = ["string1", "string2", "string3", "string4", "string5", "string6", "string 7", "string8", "string9", "string10"]
for new_string in new_list:
randomlist.insert(0, new_string)
Когда я запускаю этот код, я получаю выход из списка, где каждый элемент из new_list
вставлен до моих randomlist
элементов. Это приводит к списку из 20 элементов, когда это должно быть только 11.
Как должен выглядеть результат, это примерно так (после применения функции к каждому из 10 файлов с использованием sys.argv
), где rstring
соответствует строке из мой randomlist
:
["string1", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string2", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string3", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string4", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string5", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string6", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string7", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string8", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string9", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
["string10", "rstring1", "rstring2", "rstring3", "rstring4", "rstring5", "rstring6", "rstring7", "rstring8", "rstring9", "rstring10"]
Я тоже попробовал другие вещи, но это наименее грязный способ, которым я мог бы получить выход в качестве резюмировать, мне нужно использовать каждый элемент из new_list
только один раз (в порядке слева направо.) и вставьте его в начало моего randomlist
. Для каждого файла, с которым я работаю, есть randomlist
, и я вызываю их через sys.argv
. Я полагаю, что он будет включать цикл цикла и, возможно, кортежи, но я не знаю, как заставить их делать то, что мне нужно делать. Кроме того, мне не разрешено что-либо делать.
Я сожалею, я не уверен, я понимаю, где я добавляю линию, которую вы мне дали. Я попытался добавить, что между строками 2 и 3 кода в моем исходном вопросе, и мой вывод был только случайным списком, который был сгенерирован без элементов new_list, вставленных перед генерированием случайного списка. Я также попытался заменить свою строку 4 кода моего вопроса вашей линией, и я получил тот же результат. – biocoder
Это зависит от того, что вы хотите сделать с измененным списком. См. Править, чтобы просто распечатать их. – Julien