[PYTHON] 파이썬 목록에서 두 항목의 위치를 전환하는 방법은 무엇입니까?
PYTHON파이썬 목록에서 두 항목의 위치를 전환하는 방법은 무엇입니까?
네트워크에서이 문제에 대한 좋은 해결책을 찾을 수 없었습니다. 아마도 스위치, 위치, 목록 및 파이썬이 모두 이러한 오버로드 된 단어이기 때문일 수 있습니다.
그것은 오히려 간단합니다. 저는이 목록을 가지고 있습니다 :
['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter']
나는 'password2'와 'password1'의 위치를 바꾸고 싶다 - 정확한 위치를 알지 못한다. 단지 그들이 서로 바로 옆에 있고 password2가 제일 먼저 나온다.
나는 오랫동안 권위있는리스트 구독 (subscripting)으로이 작업을 수행해 왔지만, 좀 더 우아한 것을 생각해 낼 수 있을지 궁금해했다.
해결법
-
==============================
1.
i = ['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter'] a, b = i.index('password2'), i.index('password1') i[b], i[a] = i[a], i[b]
-
==============================
2.간단한 파이썬 스왑은 다음과 같습니다 :
간단한 파이썬 스왑은 다음과 같습니다 :
foo[i], foo[j] = foo[j], foo[i]
이제 당신이해야 할 일은 내가 무엇인지 파악하는 것뿐입니다. 인덱스로 쉽게 할 수 있습니다.
i = foo.index("password2")
-
==============================
3.귀하의 사양을 감안할 때, 나는 슬라이스 할당을 사용합니다.
귀하의 사양을 감안할 때, 나는 슬라이스 할당을 사용합니다.
>>> L = ['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter'] >>> i = L.index('password2') >>> L[i:i+2] = L[i+1:i-1:-1] >>> L ['title', 'email', 'password1', 'password2', 'first_name', 'last_name', 'next', 'newsletter']
슬라이스 지정의 오른쪽은 "역전 된 슬라이스"이며 철자가 붙여 질 수도 있습니다 :
L[i:i+2] = reversed(L[i:i+2])
당신이 그것을 더 많이 읽을 수 있다면 많은 사람들이 읽을 수 있습니다.
-
==============================
4.어떻게 오래 갈 수 있을까요?
어떻게 오래 갈 수 있을까요?
tmp = my_list[indexOfPwd2] my_list[indexOfPwd2] = my_list[indexOfPwd2 + 1] my_list[indexOfPwd2 + 1] = tmp
임시 저장소를 사용하는 단순한 스왑 일뿐입니다.
-
==============================
5.예를 들면 다음과 같습니다 :
예를 들면 다음과 같습니다 :
>>> test_list = ['title', 'email', 'password2', 'password1', 'first_name', 'last_name', 'next', 'newsletter'] >>> reorder_func = lambda x: x.insert(x.index('password2'), x.pop(x.index('password2')+1)) >>> reorder_func(test_list) >>> test_list ... ['title', 'email', 'password1', 'password2', 'first_name', 'last_name', 'next', 'newsletter']
-
==============================
6.
for i in range(len(arr)): if l[-1] > l[i]: l[-1], l[i] = l[i], l[-1] break
이것에 의해, 마지막 요소가 위치 i의 요소보다 큰 경우는 양쪽 모두 스왑됩니다.
-
==============================
7.나는 파이썬 전문가가 아니지만 시도 할 수 : 말하다
나는 파이썬 전문가가 아니지만 시도 할 수 : 말하다
i = (1,2) res = lambda i: (i[1],i[0]) print 'res(1, 2) = {0}'.format(res(1, 2))
위의 경우 o / p는 다음과 같이 나타납니다.
res(1, 2) = (2,1)
-
==============================
8.와우! 훨씬 더 많은 표준 (모든 언어에 적용 가능), 간단하고 짧은 방법이 있습니다!
와우! 훨씬 더 많은 표준 (모든 언어에 적용 가능), 간단하고 짧은 방법이 있습니다!
x = i[2]; i[2] = i[3]; i[3] = x
단순함은 복잡한 것보다 낫습니다.
참고 : 위치를 모른다면 :
index = list.index("password1") # = 3 in the given list
from https://stackoverflow.com/questions/2493920/how-to-switch-position-of-two-items-in-a-python-list by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 파이썬 셸에서 pyspark 가져 오기 (0) | 2018.10.09 |
---|---|
[PYTHON] 다중 처리로 전달 된 함수의 반환 값을 복구하는 방법은? (0) | 2018.10.09 |
[PYTHON] python : urllib2 urlopen 요청으로 쿠키를 보내는 방법 (0) | 2018.10.09 |
[PYTHON] 두 개의 정렬되지 않은 목록이 같은지 확인 [duplicate] (0) | 2018.10.09 |
[PYTHON] urllib2 유니 코드로 읽음 (0) | 2018.10.09 |