2016-10-29 3 views
0

Поэтому я хотел бы, например, если список содержит элементы, такие какПереместить элемент в список? | Python

[A,B,C,.,D] 

Как я «C», чтобы переместиться в пустое пространство справа от него? Я знаю, что сначала мне нужно будет посмотреть, есть ли период рядом с персонажем. У меня возникают проблемы с движущейся частью. Я хочу переместить «C» и переместить период в старом месте.

+0

В списке нет «пустых мест». Либо все пробелы, заполненные, либо пустые. Теперь, если вы хотите переместить 'C', где' D', используйте 'list.insert()'. –

+0

Возможный дубликат [Переместить элемент внутри списка?] (Https://stackoverflow.com/q/3173154/1278112) –

ответ

3

Вы имеете в виду, как, изменяя C и положение точки? У вас может быть что-то вроде:

list_ = [A, B, C, ., D] 
list_[2], list_[3] = list_[3], list_[2] 

Список_ будет выглядеть как [A, B,., C, D].

+2

Нет необходимости в 'temp' в свопингах python, просто используйте:' x [2], x [ 3] = x [3], x [2] ' –

+0

Отличный улов! Благодаря! – vribeiro

1

Вы должны сначала найти положение элемента, который вы хотите поменять, а затем вы можете поменять его, как это:

>>> l = ["A", "B", "C", ".", "D"] 
>>> c_i = l.index("C") 
>>> l[c_i], l[c_i+1] = l[c_i+1], l[c_i] 
>>> l 
['A', 'B', '.', 'C', 'D'] 
1
my_list = ['A', 'B', 'C', '.', 'D'] 
old_index = my_list.index('.') 
# Pop out the '.' and insert into the preceding index. 
my_list.insert(old_index - 1, my_list.pop(old_index)) 
print(my_list) 

> ['A', 'B', '.', 'C', 'D'] 
+0

Обратите внимание, что OP сказал: _ «Как я получу« C », чтобы переместить ** в ** пустое пространство справа от него?» _. Он использовал '.' в качестве владельца места, и он хотел переместить' C' в это пространство. Не двигайте 'C' мимо. –

+0

OP также сказал: * Я хочу переместить «C» и переместить период в старом месте. * Это вопрос перспективы, если вы двигаетесь «C» или «.», На самом деле. –

+0

Хорошо, это справедливая точка. –

Смежные вопросы