Python list 무겁게 하고 원래 순서를 그대로 유지하는 방법

배경


python은 호랑이처럼 맹렬하게 조작을 하고 setlist를 떼어내면 무겁지만 순서가 흐트러진다.만약 순서에 대해 필요하지 않다면, 이렇게 하는 것은 확실히 아무런 상관이 없다.
하지만 순서를 보류해야 한다면 작은 변화가 필요하다.

code && demo


순서

# normal  
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
print(l2)

# plus  
l1 = ['b','c','d','b','c','a','a']
l2 = {}.fromkeys(l1).keys()


다시 가서 원래 리스트 순서로.

# normal  
l1 = ['b','c','d','b','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)

# plus  
l1 = ['b','c','d','b','c','a','a']
l2 = sorted(set(l1),key=l1.index)
순환 코드 작성 실현

# normal  
l1 = ['b','c','d','b','c','a','a']
l2 = []
for i in l1:
  if not i in l2:
    l2.append(i)
    
# plus  

l1 = ['b','c','d','b','c','a','a']
l2 = []
[l2.append(i) for i in l1 if not i in l2]
while 순환 코드 작성 실현

L = [3, 1, 2, 1, 3, 4]
T = L[:]
for i in L:
  while T.count(i) > 1:
    del T[T.index(i)]
T.sort(key=L.index)
lambda 작법
참고:
  • ambda L, i: L if i in L else L + [i] # 요소가 목록에 있으면 목록 자체를 되돌려주고 없으면 L + [i]
  • [[],] + L #은 [[], L]과 동일하며 후면 계산이 편리합니다.
  • 총결산


    만약 공간의 복잡도가 얽히면python으로 무엇을 합니까?
    먼저 완성할 수 있는지 없는지를 이야기한 다음에 최적화를 이야기합시다.
    이상은Python list가 중복되고 원래의 순서가 변하지 않는 방법에 대한 상세한 내용입니다. 더 많은 Python list가 중복되는 것에 관한 자료는 저희 다른 관련 글을 주목해 주십시오!

    좋은 웹페이지 즐겨찾기