Создание списка из элементов нескольких списков (чисел)

#list

#python #Список

Вопрос:

Я изо всех сил пытаюсь скопировать отдельные элементы из списка в другой список.

Я хочу выбрать первый элемент from a и первый элемент b into c .

 a = [1,2,3]
b = [4,5,6]
 

Я хочу c быть [1,4] .

Я пробовал это с помощью кода:

 Game_Pool = [1,2,3,4,5,6,7,8]

First_Values    = Game_Pool[0:4]
Last_Values     = Game_Pool[-4:-1]
            
Comb_01 = (First_Values[0]   Last_Values[0])
 

Мне нужно Comb_01 быть [1,5] .

Заранее благодарю

Ответ №1:

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

 Comb_01=First_Values[0:1] Last_Values[1:2]
 

дает

 [1,5]
 

или

 a[0:1] b[0:1]
 

дает

 [1,4]
 

Ответ №2:

Спасибо 🙂

Также я только что разработал

Comb_01 = [[First_Values[0],Last_Values[0]]]

Ответ №3:

В вопросе вы должны добавить точку с запятой между двумя назначениями для First_Values и Last_Values , если вы хотите сохранить их в одной строке, иначе вы получите синтаксическую ошибку. Так

 First_Values = Game_Pool[0:4] Last_Values = Game_Pool[-4:-1]
 

должно быть

 First_Values = Game_Pool[0:4]; Last_Values = Game_Pool[-4:-1]
 

или просто введите их в две отдельные строки

 First_Values = Game_Pool[0:4]
Last_Values = Game_Pool[-4:-1]
 

Еще одна вещь, с которой вы, возможно, захотите быть осторожными, — это то, что Game_Pool[-4:-1] не включает элемент с индексом -1 (последний элемент, здесь 8 ). Python переходит к единице перед последним индексом. Итак, если вы попросите python показать вам Last_Values , вы получите [5,6,7] . Чтобы указать python идти до конца, включая последний элемент, просто оставьте второй индекс нарезки пустым ^_^ То есть Game_Pool[-4:] . Теперь это также будет включать 8 .

Причина, по которой ваша попытка ответить на вопрос не заключается в добавлении двух списков в конце друг друга, заключается в том, что две вещи, которые вы помещаете в его левую и правую стороны, — это не списки, а только один элемент без каких-либо скобок. Чтобы быть более точным, когда вы используете нарезку в скобках перед именем списка, вы получите вложенный список. Так Game_Pool[0:4] или Game_Pool[-4:] возвращает списки. Но когда вы используете номер одного индекса внутри скобок перед именем списка, он возвращает вам только один элемент без какой-либо оболочки списка. Так First_Value[0] что это просто 1 то, что является an int , а не a list . Есть два способа исправить это. Один из способов — использовать нарезку, чтобы вы могли ввести First_Values[0:1] , который дает вам вложенный список с элементами индекса, начинающимися с 0 и заканчивающимися на единицу раньше 1, что означает, что выбран только индекс 0. Второй способ — ввести скобки вокруг этого значения самостоятельно, то есть [First_Values[0]] . Вот эти два решения.

Решение 1

 Game_Pool = [1, 2, 3, 4, 5, 6, 7, 8]
First_Values = Game_Pool[0:4]
Last_Values = Game_Pool[-4:]
Comb_01 = [First_Values[0]]   [Last_Values[0]]
 

Решение 2

 Game_Pool = [1, 2, 3, 4, 5, 6, 7, 8]
First_Values = Game_Pool[0:4]
Last_Values = Game_Pool[-4:]
Comb_01 = First_Values[0:1]   Last_Values[0:1]
 

Теперь вы также нашли решение, которое вы опубликовали в ответе. Но только одна крошечная вещь заключается в том, что вы ввели одну дополнительную скобку. Так что у Comb_01 = [[First_Values[0],Last_Values[0]]] вас получится [[1,5]] . Поэтому третьим решением является удаление лишних скобок из вашего ответа ^_^

Решение 3

 Game_Pool = [1, 2, 3, 4, 5, 6, 7, 8]
First_Values = Game_Pool[0:4]
Last_Values = Game_Pool[-4:]
Comb_01 = [First_Values[0], Last_Values[0]]