#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]]