programing

파이썬의 목록에서 고유 한 값 얻기

nasanasas 2020. 9. 30. 10:58
반응형

파이썬의 목록에서 고유 한 값 얻기 [중복]


이 질문에 이미 답변이 있습니다.

다음 목록에서 고유 한 값을 얻고 싶습니다.

[u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']

내가 필요한 출력은 다음과 같습니다.

[u'nowplaying', u'PBS', u'job', u'debate', u'thenandnow']

이 코드는 다음과 같이 작동합니다.

output = []
for x in trends:
    if x not in output:
        output.append(x)
print output

내가 사용해야 할 더 나은 솔루션이 있습니까?


먼저 쉼표로 구분하여 목록을 올바르게 선언하십시오. 목록을 집합으로 변환하여 고유 한 값을 얻을 수 있습니다.

mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
myset = set(mylist)
print(myset)

목록으로 추가로 사용하는 경우 다음을 수행하여 목록으로 다시 변환해야합니다.

mynewlist = list(myset)

아마도 더 빠른 또 다른 가능성은 목록 대신 처음부터 집합을 사용하는 것입니다. 그러면 코드는 다음과 같아야합니다.

output = set()
for x in trends:
    output.add(x)
print(output)

지적했듯이 세트는 원래 순서를 유지하지 않습니다. 필요한 경우 주문한 세트를 찾아야합니다 .


내가 사용할 유형과 일치하려면 다음을 수행하십시오.

mylist = list(set(mylist))

요소 순서를 유지해야한다면 어떻게해야할까요?

used = set()
mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
unique = [x for x in mylist if x not in used and (used.add(x) or True)]

그리고 reduce임시 usedvar를 사용 하거나 사용 하지 않는 또 다른 솔루션 입니다.

mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
unique = reduce(lambda l, x: l.append(x) or l if x not in l else l, mylist, [])

업데이트-2019 년 3 월

그리고 세 번째 해결책은 깔끔하지만 .indexO (n) 이기 때문에 다소 느립니다 .

mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
unique = [x for i, x in enumerate(mylist) if i == mylist.index(x)]

업데이트-2016 년 10 월

를 사용하는 또 다른 솔루션 reduce이지만 이번에는 사용하지 않으면 .append사람이 더 읽기 쉽고 이해하기 쉽습니다.

mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
unique = reduce(lambda l, x: l+[x] if x not in l else l, mylist, [])
#which can also be writed as:
unique = reduce(lambda l, x: l if x in l else l+[x], mylist, [])

참고 : 사람이 읽을 수있을수록 스크립트의 성능이 떨어집니다.

import timeit

setup = "mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']"

#10x to Michael for pointing out that we can get faster with set()
timeit.timeit('[x for x in mylist if x not in used and (used.add(x) or True)]', setup='used = set();'+setup)
0.4188511371612549

timeit.timeit('[x for x in mylist if x not in used and (used.append(x) or True)]', setup='used = [];'+setup)
0.6157128810882568

timeit.timeit('reduce(lambda l, x: l.append(x) or l if x not in l else l, mylist, [])', setup=setup)
1.8778090476989746

timeit.timeit('reduce(lambda l, x: l+[x] if x not in l else l, mylist, [])', setup=setup)
2.13108491897583

timeit.timeit('reduce(lambda l, x: l if x in l else l+[x], mylist, [])', setup=setup)
2.207760810852051

timeit.timeit('[x for i, x in enumerate(mylist) if i == mylist.index(x)]', setup=setup)
2.3621110916137695

댓글 답변

@monica 가 "어떻게 작동 하는가?"에 대해 좋은 질문을 했기 때문 입니다. 그것을 알아내는 데 문제가있는 모든 사람을 위해. 나는 이것이 어떻게 작동하는지 그리고 여기서 일어나는 마법에 대해 더 깊이 설명하려고 노력할 것입니다;)

그래서 그녀는 먼저 물었습니다.

나는 왜 unique = [used.append(x) for x in mylist if x not in used]작동하지 않는지 이해하려고 노력합니다.

실제로 작동하고 있습니다.

>>> used = []
>>> mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
>>> unique = [used.append(x) for x in mylist if x not in used]
>>> print used
[u'nowplaying', u'PBS', u'job', u'debate', u'thenandnow']
>>> print unique
[None, None, None, None, None]

문제는 unique변수 내에서 원하는 결과를 얻는 것이 아니라 used변수 내에서만 얻을 수 있다는 것 입니다. 이는 목록 이해 중에 변수를 .append수정하고을 used반환하기 때문 None입니다.

따라서 결과를 unique변수 로 가져 오고 여전히를 사용하여 동일한 논리를 사용하려면 .append(x) if x not in used.append호출을 목록 이해의 오른쪽 으로 이동 x하고 왼쪽으로 돌아와야 합니다.

그러나 우리가 너무 순진하고 그냥 가면 :

>>> unique = [x for x in mylist if x not in used and used.append(x)]
>>> print unique
[]

우리는 대가로 아무것도 얻지 못할 것입니다.

다시 말하지만, .append메서드가을 반환 하기 때문이며 이는 None논리 표현식에 다음과 같은 모습을 제공합니다.

x not in used and None

이것은 기본적으로 항상 :

  1. 로 평가 False하는 경우 xused,
  2. 없는 None경우 x평가됩니다 used.

그리고 두 경우 모두 ( False/ None), 이것은 falsy으로 취급되고 결과적으로 빈 목록을 얻게됩니다.

그러나 이것이 None언제 x가 아닌 것으로 평가되는 이유 used무엇입니까? 누군가 물어볼 수 있습니다.

이것이 파이썬의 단락 연산자가 작동 하는 방식이기 때문 입니다.

표현식은 x and y먼저 x를 평가합니다. x가 거짓이면 그 값이 반환됩니다. 그렇지 않으면 y가 평가되고 결과 값이 반환됩니다.

따라서 x가 사용되지 않을 (즉, True) 다음 부분이나 표현식이 평가되고 ( used.append(x)) 그 값 ( None) 이 반환됩니다.

그러나 그것이 중복 된 목록에서 고유 한 요소를 얻기 위해 우리가 원하는 .append것입니다. 우리는 그들이 처음으로 발견되었을 때만 새로운 목록에 추가하기를 원합니다 .

우리가 정말 평가할 그래서 used.append(x)경우에만 x아닌 used이 설정하는 방법이있다 어쩌면 경우, None에 값을 truthy우리가 잘 맞을 것 하나?

네, 여기에 두 번째 유형의 short-circuit대원이 등장합니다.

표현식은 x or y먼저 x를 평가합니다. x가 참이면 그 값이 반환됩니다. 그렇지 않으면 y가 평가되고 결과 값이 반환됩니다.

우리는 그것이 .append(x)항상 일 것이라는 것을 알고 falsy있으므로 or그 옆에 하나를 추가 하면 항상 다음 부분을 얻습니다. 그것이 우리가 쓰는 이유입니다 :

x not in used and (used.append(x) or True)

우리가 할 수 있도록 평가 used.append(x) 얻을 True결과로, 경우에만 식의 첫 번째 부분 (x not in used)입니다 True.

방법을 사용한 두 번째 접근 방식에서도 유사한 방식을 볼 수 있습니다 reduce.

(l.append(x) or l) if x not in l else l
#similar as the above, but maybe more readable
#we return l unchanged when x is in l
#we append x to l and return l when x is not in l
l if x in l else (l.append(x) or l)

우리가 :

  1. 에 추가 x하고 에없는 경우 l반환합니다 . 덕분에 진술 이 평가되고 그 후에 반환됩니다.lxlor.appendl
  2. 돌아 l때 그대로 x입니다l

출력 변수는 어떤 유형입니까?

파이썬 세트 는 당신에게 필요한 것입니다. 다음과 같이 출력을 선언하십시오.

output = set([]) # initialize an empty set

요소를 추가 할 준비가되었으며 output.add(elem)고유한지 확인하십시오.

경고 : 세트는 목록의 원래 순서를 유지하지 않습니다.


제공 한 예제는 Python의 목록과 일치하지 않습니다. 그것은 아마도 당신이 의도 한 것이 아닌 중첩 된 dict와 유사합니다.

Python 목록 :

a = ['a', 'b', 'c', 'd', 'b']

고유 한 항목을 얻으려면 세트로 변환하기 만하면됩니다 (필요한 경우 다시 목록으로 변환 할 수 있음).

b = set(a)
print b
>>> set(['a', 'b', 'c', 'd'])

순서 유지 :

# oneliners
# slow -> . --- 14.417 seconds ---
[x for i, x in enumerate(array) if x not in array[0:i]]

# fast -> . --- 0.0378 seconds ---
[x for i, x in enumerate(array) if array.index(x) == i]

# multiple lines
# fastest -> --- 0.012 seconds ---
uniq = []
[uniq.append(x) for x in array if x not in uniq]
uniq

순서는 중요하지 않습니다.

# fastest-est -> --- 0.0035 seconds ---
list(set(array))

List에서 고유 한 요소 가져 오기

mylist = [1,2,3,4,5,6,6,7,7,8,8,9,9,10]

세트에서 단순 논리 사용-세트는 고유 한 항목 목록입니다.

mylist=list(set(mylist))

In [0]: mylist
Out[0]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

단순 논리 사용

newList=[]
for i in mylist:
    if i not in newList:
        newList.append(i)

In [0]: mylist
Out[0]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

pop 메소드-> pop을 사용하면 마지막 또는 색인 된 항목을 제거하고 사용자에게 표시합니다. 비디오

k=0
while k < len(mylist):
    if mylist[k] in mylist[k+1:]:
        mylist.pop(mylist[k])
    else:
        k=k+1

In [0]: mylist
Out[0]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Numpy 사용

import numpy as np
np.unique(mylist)

In [0]: mylist
Out[0]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

참고


코드에서 numpy를 사용하는 경우 (더 많은 양의 데이터에 적합 할 수 있음) numpy.unique를 확인하십시오 .

>>> import numpy as np
>>> wordsList = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
>>> np.unique(wordsList)
array([u'PBS', u'debate', u'job', u'nowplaying', u'thenandnow'], 
      dtype='<U10')

( http://docs.scipy.org/doc/numpy/reference/generated/numpy.unique.html )

보시다시피 numpy는 숫자 데이터를 지원할뿐만 아니라 문자열 배열도 가능합니다. 물론 결과는 numpy 배열이지만 여전히 시퀀스처럼 동작하기 때문에 그다지 중요하지 않습니다.

>>> for word in np.unique(wordsList):
...     print word
... 
PBS
debate
job
nowplaying
thenandnow

정말로 바닐라 파이썬 목록을 원하면 언제든지 list ()를 호출 할 수 있습니다.

그러나 위의 코드 조각에서 볼 수 있듯이 결과는 자동으로 정렬됩니다. 목록 순서를 유지해야하는 경우 정렬없이 고유 한 numpy를 확인하십시오 .


세트-고유 한 요소의 순서없는 컬렉션. 요소 목록은 집합의 생성자에 전달할 수 있습니다. 따라서 중복 요소가있는 목록을 전달하고 고유 한 요소로 설정하고 다시 목록으로 변환 한 다음 고유 한 요소가있는 목록을 가져옵니다. 성능과 메모리 오버 헤드에 대해서는 아무 말도 할 수 없지만 작은 목록에서는 그다지 중요하지 않기를 바랍니다.

list(set(my_not_unique_list))

간단하고 짧습니다.


다음은 순서가 지정되지 않거나 순서가 지정되지 않은 고유 한 요소를 가져 오는 방법에 대한 요약입니다.

주어진

from collections import OrderedDict


seq = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']

암호

# Unordered
list(set(seq))
# Out: ['thenandnow', 'PBS', 'debate', 'job', 'nowplaying']

# Order-preserving
list(OrderedDict.fromkeys(seq))
# Out: ['nowplaying', 'PBS', 'job', 'debate', 'thenandnow']

또는 Python 3.6 이상에서 :

# Order-preserving
list(dict.fromkeys(seq))
# Out: ['nowplaying', 'PBS', 'job', 'debate', 'thenandnow']

참고 : 나열된 요소는 해시 가능 해야합니다 . 블로그 게시물 에서 후자의 예에 대한 세부 정보도 참조하십시오 . 또한 동일한 기술에 대한 R. Hettinger의 게시물참조하십시오 . 순서 보존 딕셔너리는 그의 초기 구현 중 하나에서 확장되었습니다.


목록 압축 만 사용하는 동일한 순서 고유 목록입니다.

> my_list = [1, 2, 1, 3, 2, 4, 3, 5, 4, 3, 2, 3, 1]
> unique_list = [
>    e
>    for i, e in enumerate(my_list)
>    if my_list.index(e) == i
> ]
> unique_list
[1, 2, 3, 4, 5]

enumerates인덱스 i와 요소 etuple.

my_list.index의 첫 번째 인덱스를 반환합니다 e. 첫 번째 인덱스가 아닌 경우 i다음 현재 반복의이 e처음 아니다 e목록입니다.

편집하다

이것은 성능 측면에서 좋은 방법이 아니라는 점에 유의해야합니다. 입니다 단지 목록 만 압축을 사용하여 달성하는 방법.


Python Dictionary의 기본 속성을 사용하여 :

inp=[u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
d={i for i in inp}
print d

출력은 다음과 같습니다.

set([u'nowplaying', u'job', u'debate', u'PBS', u'thenandnow'])

우선, 당신이 준 예제는 유효한 목록이 아닙니다.

example_list = [u'nowplaying',u'PBS', u'PBS', u'nowplaying', u'job', u'debate',u'thenandnow']

위의 목록이 예라고 가정합니다. 그런 다음 다음 레시피를 사용하여 고유 한 값을 반환하고 필요한대로 순서를 유지할 수있는 itertools 예제 문서를 제공 할 수 있습니다. 여기서 반복 가능한 것은 example_list입니다.

from itertools import ifilterfalse

def unique_everseen(iterable, key=None):
    "List unique elements, preserving order. Remember all elements ever seen."
    # unique_everseen('AAAABBBCCDAABBB') --> A B C D
    # unique_everseen('ABBCcAD', str.lower) --> A B C D
    seen = set()
    seen_add = seen.add
    if key is None:
        for element in ifilterfalse(seen.__contains__, iterable):
            seen_add(element)
            yield element
    else:
        for element in iterable:
            k = key(element)
            if k not in seen:
                seen_add(k)
                yield element

def get_distinct(original_list):
    distinct_list = []
    for each in original_list:
        if each not in distinct_list:
            distinct_list.append(each)
    return distinct_list

set목록에서 중복 된 요소를 필터링하는 데 도움이 될 수 있습니다. 그것은 잘 작동 str, int또는 tuple요소,하지만 목록에 포함되어있는 경우 dict또는 기타 list요소에, 당신은 끝낼 것이다 TypeError예외.

다음은 해시 할 수없는 일부 유형을 처리하는 일반적인 순서 보존 솔루션입니다.

def unique_elements(iterable):
    seen = set()
    result = []
    for element in iterable:
        hashed = element
        if isinstance(element, dict):
            hashed = tuple(sorted(element.iteritems()))
        elif isinstance(element, list):
            hashed = tuple(element)
        if hashed not in seen:
            result.append(element)
            seen.add(hashed)
    return result

보너스로 Counter는 고유 한 값과 각 값의 개수를 모두 얻는 간단한 방법입니다.

from collections import Counter
l = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
c = Counter(l)

목록 에서 고유 한 값을 얻으려면 아래 코드를 사용 하십시오 .

trends = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
output = set(trends)
output = list(output)

중요 : 위의 접근 방식은 list 또는 dict 와 같이 변경 가능한 유형의 경우 와 같이 목록의 항목 중 하나라도 해시 할 수없는 경우 작동하지 않습니다 .

trends = [{'super':u'nowplaying'}, u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']
output = set(trends)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  TypeError: unhashable type: 'dict'

즉, trends목록에 항상 해시 가능한 항목 만 포함 되도록해야 합니다. 그렇지 않으면보다 정교한 코드를 사용해야합니다.

from copy import deepcopy

try:
    trends = [{'super':u'nowplaying'}, [u'PBS',], [u'PBS',], u'nowplaying', u'job', u'debate', u'thenandnow', {'super':u'nowplaying'}]
    output = set(trends)
    output = list(output)
except TypeError:
    trends_copy = deepcopy(trends)
    while trends_copy:
        trend = trends_copy.pop()
        if trends_copy.count(trend) == 0:
            output.append(trend)
print output

목록을 설정으로 변환 할 수 있다는 이전 답변 외에도 이런 방식으로도 할 수 있습니다.

mylist = [u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenadnow']
mylist = [i for i in set(mylist)]

출력은

[u'nowplaying', u'job', u'debate', u'PBS', u'thenadnow']

주문은 유지되지 않습니다.

또 다른 간단한 대답은 (세트를 사용하지 않고)

>>> t = [v for i,v in enumerate(mylist) if mylist.index(v) == i]
[u'nowplaying', u'PBS', u'job', u'debate', u'thenadnow']

def setlist(lst=[]):
   return list(set(lst))

지금까지 아무도 직접 주문 보존 답변을하지 않았다는 사실에 놀랐습니다.

def unique(sequence):
    """Generate unique items from sequence in the order of first occurrence."""
    seen = set()
    for value in sequence:
        if value in seen:
            continue

        seen.add(value)

        yield value

값을 생성하므로 목록뿐만 아니라 unique(range(10)). 목록을 얻으려면 다음과 같이을 호출 list(unique(sequence))하십시오.

>>> list(unique([u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']))
[u'nowplaying', u'PBS', u'job', u'debate', u'thenandnow']

각 항목이 해시 가능하고 비교할 수 있어야한다는 요구 사항이 있지만 Python의 대부분은 O (n)이고 O (n ^ 2)가 아니므로 긴 목록에서도 잘 작동합니다.


세트를 사용할 수 있습니다. 명확하게 말하면 목록과 집합의 차이점이 무엇인지 설명하고 있습니다. 집합은 고유 한 요소의 순서가 지정되지 않은 컬렉션이고, 목록은 순서가 지정된 요소 컬렉션입니다. 그래서,

    unicode_list=[u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job',u'debate', u'thenandnow']
    list_unique=list(set(unicode_list))
    print list_unique
[u'nowplaying', u'job', u'debate', u'PBS', u'thenandnow']

그러나 : 변수 이름을 지정할 때 목록 / 세트를 사용하지 마십시오. 오류가 발생합니다. EX : 위의 unicode_list 대신 목록을 사용합니다.

list=[u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job',u'debate', u'thenandnow']
        list_unique=list(set(list))
        print list_unique
    list_unique=list(set(list))
TypeError: 'list' object is not callable

  1. 코드 시작 부분에서 출력 목록을 비어 있다고 선언하십시오. output=[]
  2. 코드 대신이 코드를 사용할 수 있습니다. trends=list(set(trends))

목록에서 고유 한 요소를 가져오고 원래 순서를 유지하려면 OrderedDictPython의 표준 라이브러리에서 데이터 구조를 사용할 수 있습니다.

from collections import OrderedDict

def keep_unique(elements):
    return list(OrderedDict.fromkeys(elements).keys())

elements = [2, 1, 4, 2, 1, 1, 5, 3, 1, 1]
required_output = [2, 1, 4, 5, 3]

assert keep_unique(elements) == required_output

실제로 Python ≥ 3.6을 사용하는 경우 일반 dict사용할 수 있습니다 .

def keep_unique(elements):
    return list(dict.fromkeys(elements).keys())

dicts의 "간단한"표현이 도입 된 이후에 가능해졌습니다. 여기에서 확인 하십시오 . 이것은 "구현 세부 사항을 고려하고 의존해서는 안됩니다".


콘텐츠의 고유성을 확인하지만 원래 순서를 유지하는 솔루션 :

def getUnique(self):
    notunique = self.readLines()
    unique = []
    for line in notunique: # Loop over content
        append = True # Will be set to false if line matches existing line
        for existing in unique:
            if line == existing: # Line exists ? do not append and go to the next line
                append = False
                break # Already know file is unique, break loop
        if append: unique.append(line) # Line not found? add to list
    return unique

편집 : 아마도 각 줄에 대해 전체 파일 루프를 수행하는 대신 사전 키를 사용하여 존재를 확인하면 더 효율적일 수 있습니다. 큰 집합에는 솔루션을 사용하지 않을 것입니다.


세트를 사용하여 목록 중복 제거, 목록으로 반환

def get_unique_list(lst):
        if isinstance(lst,list):
            return list(set(lst))

세트의 모음입니다 않은 주문 하고 독특한 요소. 따라서 아래와 같이 set을 사용하여 고유 한 목록을 얻을 수 있습니다.

unique_list = list(set([u'nowplaying', u'PBS', u'PBS', u'nowplaying', u'job', u'debate', u'thenandnow']))

나는 이것이 오래된 질문이라는 것을 알고 있지만 여기에 고유 한 해결책이 있습니다. 클래스 상속! :

class UniqueList(list):
    def appendunique(self,item):
        if item not in self:
            self.append(item)
            return True
        return False

그런 다음 목록에 항목을 고유하게 추가하려면 UniqueList에서 appendunique를 호출하면됩니다. 목록에서 상속되기 때문에 기본적으로 목록처럼 작동하므로 index () 등과 같은 함수를 사용할 수 있습니다. true 또는 false를 반환하기 때문에 추가 성공 (고유 항목)인지 실패했는지 (이미 명부).

목록에서 고유 한 항목 목록을 가져 오려면 for 루프를 사용하여 항목을 UniqueList에 추가합니다 (그런 다음 목록으로 복사).

사용 코드 예 :

unique = UniqueList()

for each in [1,2,2,3,3,4]:
    if unique.appendunique(each):
        print 'Uniquely appended ' + str(each)
    else:
        print 'Already contains ' + str(each)

인쇄물:

Uniquely appended 1
Uniquely appended 2
Already contains 2
Uniquely appended 3
Already contains 3
Uniquely appended 4

목록에 복사 :

unique = UniqueList()

for each in [1,2,2,3,3,4]:
    unique.appendunique(each)

newlist = unique[:]
print newlist

인쇄물:

[1, 2, 3, 4]

긴 배열의 경우

s = np.empty(len(var))

s[:] = np.nan

for  x in  set(var):

    x_positions = np.where(var==x)

    s[x_positions[0][0]]=x


sorted_var=s[~np.isnan(s)]

이 기능을 사용해보세요. 코드와 비슷하지만 동적 범위입니다.

def unique(a):

    k=0
    while k < len(a):
        if a[k] in a[k+1:]:
            a.pop(k)
        else:
            k=k+1



    return a

다음 기능을 사용하십시오.

def uniquefy_list(input_list):
"""
This function  takes a list as input and return a list containing only unique elements from the input list

"""
output_list=[]
for elm123 in input_list:
    in_both_lists=0
    for elm234 in output_list:
        if elm123 == elm234:
            in_both_lists=1
            break
    if in_both_lists == 0:
        output_list.append(elm123)

return output_list

참고 URL : https://stackoverflow.com/questions/12897374/get-unique-values-from-a-list-in-python

반응형