2016-10-29 2 views
0

그래서 나는 목록 목록에서 요소를 이동 하시겠습니까? | 파이썬

[A,B,C,.,D] 

같은 요소가있는 경우 어떻게 그것의 오른쪽에있는 빈 공간으로 이동하는 'C'를 얻을 것, 예를 들어 싶었어요? 나는 캐릭터의 옆에 마침표가 있는지 먼저보고보아야한다는 것을 안다. 내가 곤란한 부분은 움직이는 부분이다. 나는 'C'를 움직여서 그 기간을 오래된 장소로 옮기고 싶다.

+0

목록에 "빈 공간"이 없습니다. 모든 공백이 채워지거나 비어 있습니다. 이제'D '가있는 곳에서'C'를 움직이려면'list.insert()'를 사용하십시오. –

+0

[목록 안의 항목을 이동 하시겠습니까?] (https://stackoverflow.com/q/3173154/1278112) –

답변

3

같은 변화 C와 점의 위치?

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

list_는 [A, B,., C, D]처럼 보일 것입니다.

+2

파이썬 스왑에서 'temp'가 필요하지 않습니다.'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

알았어, 그게 중요한 지적이야. –

관련 문제