반응형
목록 안으로 항목을 이동하시겠습니까?
Python에서는 어떻게 아이템을 리스트 내의 특정 인덱스로 이동합니까?
를 사용합니다.insert
목록 방식:
l = list(...)
l.insert(index, item)
또는 슬라이스 표기법을 사용할 수도 있습니다.
l[index:index] = [item]
목록에 이미 있는 항목을 지정된 위치로 이동하려면 해당 항목을 삭제하고 새 위치에 삽입해야 합니다.
l.insert(newindex, l.pop(oldindex))
조금 더 짧은 솔루션은 항목을 다른 곳으로 이동하지 않고 끝까지만 이동하는 것입니다.
l += [l.pop(0)]
예를 들어 다음과 같습니다.
>>> l = [1,2,3,4,5]
>>> l += [l.pop(0)]
>>> l
[2, 3, 4, 5, 1]
항목의 위치를 모를 경우 먼저 인덱스를 찾아야 할 수 있습니다.
old_index = list1.index(item)
다음으로 이동합니다.
list1.insert(new_index, list1.pop(old_index))
또는 IMHO를 더 깨끗한 방법으로:
list1.remove(item)
list1.insert(new_index, item)
솔루션은 매우 간단하지만 원래 위치의 인덱스와 새 위치의 인덱스를 알아야 합니다.
list1[index1],list1[index2]=list1[index2],list1[index1]
같은 리스트 내의 아이템을 타임릿과 함께 이동하기 위한 몇 가지 방법을 프로파일 했습니다.j>i 의 경우에 사용하는 것은 다음과 같습니다.
┌──────────┬──────────────────────┐§ 14.4usec │ xx [ i : i ] = x . pop ( j ) 、 ││14 14 . 5usec x[x [ i : i ]= [ x . pop ( j )]│© 15 . 2usec © x . insert ( i , x . pop ( j ) »└──────────┴──────────────────────┘
j<=i:
┌──────────┬───────────────────────────┐14 14.4usec xx [ i : i ]=x[j],;del x[j] │14 14.4usec xx [ i : i ]=[x[j];del x[j] │© 15 . 4usec © x . insert ( i , x [ j ] ; del x [ j ] »└──────────┴───────────────────────────┘
몇 번 정도만 사용해도 큰 차이는 없지만, 수작업으로 분류하는 등 무거운 작업을 하는 경우에는 가장 빠른 것을 선택하는 것이 중요합니다.그렇지 않다면, 저는 당신이 가장 읽기 쉽다고 생각하는 것을 추천하고 싶습니다.
다음과 같은 식으로 표현하고 싶습니다.
>>> l = [1,2,3,4,5]
>>> [*l, l.pop(0)]
[2, 3, 4, 5, 1]
l = list(...) #replace ... with the list contents
if item in l: #Checks if the item to be moved is present in the list
l.remove(item) # Removes the item from the current list if the previous line's conditions are achieved
l.insert(new_index,item) # Adds item to new list
순방향(왼쪽에서 오른쪽으로) 스왑의 예를 다음에 나타냅니다.
>>> abc = [1,2,3,4,5]
>>> abc.insert(0, abc.pop(len(abc)-1))
[5, 1, 2, 3, 4]
언급URL : https://stackoverflow.com/questions/3173154/move-an-item-inside-a-list
반응형
'programing' 카테고리의 다른 글
숨겨진 UIView가 있는 자동 레이아웃? (0) | 2023.04.22 |
---|---|
ORM 또는 플레인 SQL 사용 (0) | 2023.04.22 |
필터링된 데이터의 행 수 (0) | 2023.04.22 |
함수 내에서 발신자의 명령줄 인수에 액세스하려면 어떻게 해야 합니까? (0) | 2023.04.22 |
bash에서 현재 파티션의 사용 가능한 디스크 공간을 확인하십시오. (0) | 2023.04.17 |