파이썬의 마술 내장형
파이썬에서는 이와 같은 복잡한 경우를 파이썬의 내장 유형으로 만 처리하는 것이 매우 쉽습니다.
어떻게하는지 보여 드리겠습니다!
방법 1 : 일반적인 경우
목록에서 중복 된 요소를 제거하고 정렬 순서를 유지하는 방법 ( 1 줄 코드 )
line = [1, 2, 3, 1, 2, 5, 6, 7, 8]
new_line = sorted(set(line), key=line.index) # remove duplicated element
print(new_line)
당신은 결과를 얻을 것이다
[1, 2, 3, 5, 6, 7, 8]
방법 2 : 특별한 경우
TypeError: unhashable type: 'list'
해싱 불가능을 처리하는 특별한 경우 ( 3 라인 코드 )
line=[['16.4966155686595', '-27.59776154691', '52.3786295521147']
,['16.4966155686595', '-27.59776154691', '52.3786295521147']
,['17.6508629295574', '-27.143305738671', '47.534955022564']
,['17.6508629295574', '-27.143305738671', '47.534955022564']
,['18.8051102904552', '-26.688849930432', '42.6912804930134']
,['18.8051102904552', '-26.688849930432', '42.6912804930134']
,['19.5504702331098', '-26.205884452727', '37.7709192714727']
,['19.5504702331098', '-26.205884452727', '37.7709192714727']
,['20.2929416861422', '-25.722717575124', '32.8500163147157']
,['20.2929416861422', '-25.722717575124', '32.8500163147157']]
tuple_line = [tuple(pt) for pt in line] # convert list of list into list of tuple
tuple_new_line = sorted(set(tuple_line),key=tuple_line.index) # remove duplicated element
new_line = [list(t) for t in tuple_new_line] # convert list of tuple into list of list
print (new_line)
당신은 결과를 얻을 것이다 :
[
['16.4966155686595', '-27.59776154691', '52.3786295521147'],
['17.6508629295574', '-27.143305738671', '47.534955022564'],
['18.8051102904552', '-26.688849930432', '42.6912804930134'],
['19.5504702331098', '-26.205884452727', '37.7709192714727'],
['20.2929416861422', '-25.722717575124', '32.8500163147157']
]
튜플은 해시 가능하고 목록과 튜플간에 데이터를 쉽게 변환 할 수 있기 때문에