본문 바로가기
파이썬

파이썬 Python-목록에서 동일한 값을 찾고 새 목록을 함께 그룹화

by º기록 2020. 11. 23.
반응형

나는 이것을 알아 내고 누군가가 나를 올바른 방향으로 가리킬 수 있는지 궁금합니다.

이 목록에서 :

N = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]

나는 만들려고 해요 :

L = [[1],[2,2],[3,3,3],[4,4,4,4],[5,5,5,5,5]]

동일한 것으로 확인 된 모든 값은 자체 하위 목록으로 그룹화됩니다. 지금까지의 시도입니다. while 루프를 사용해야한다고 생각합니까?

global n

n = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5] #Sorted list
l = [] #Empty list to append values to

def compare(val):
   """ This function receives index values
   from the n list (n[0] etc) """

   global valin
   valin = val

   global count
   count = 0

    for i in xrange(len(n)):
        if valin == n[count]: # If the input value i.e. n[x] == n[iteration]
            temp = valin, n[count]
             l.append(temp) #append the values to a new list
             count +=1
        else:
          count +=1


for x in xrange (len(n)):
    compare(n[x]) #pass the n[x] to compare function

 

해결 방법

 

누군가 N = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 1] ​​에 대해 언급하면 ​​ > [[1], [2, 2], [3, 3, 3], [4, 4, 4, 4], [5, 5, 5, 5, 5], [1]]

즉, 목록의 번호가 순서가 맞지 않거나 엉망인 목록 인 경우 사용할 수 없습니다.

그래서이 문제를 해결하기위한 더 나은 답이 있습니다.

from collections import Counter

N = [1,2,2,3,3,3,4,4,4,4,5,5,5,5,5]
C = Counter(N)

print [ [k,]*v for k,v in C.items()]

 

참조 페이지 https://stackoverflow.com/questions/30293071

 

 

반응형

댓글