복붙노트

[PYTHON] 목록에서 고유 한 값을 계산하려면 어떻게합니까?

PYTHON

목록에서 고유 한 값을 계산하려면 어떻게합니까?

그래서 나는 사용자에게 입력을 요구하고 배열 /리스트에 값을 저장할이 프로그램을 만들려고 노력하고있다. 그런 다음 빈 줄을 입력하면 고유 한 값의 수를 사용자에게 알려줍니다. 나는 현실적인 이유로 이것을 구축하고 있으며 문제가 아닙니다.

enter: happy
enter: rofl
enter: happy
enter: mpg8
enter: Cpp
enter: Cpp
enter:
There are 4 unique words!

내 코드는 다음과 같습니다.

# ask for input
ipta = raw_input("Word: ")

# create list 
uniquewords = [] 
counter = 0
uniquewords.append(ipta)

a = 0   # loop thingy
# while loop to ask for input and append in list
while ipta: 
  ipta = raw_input("Word: ")
  new_words.append(input1)
  counter = counter + 1

for p in uniquewords:

.. 그리고 그것은 내가 지금까지 얻었던 누구나 근처에있다. 목록에서 고유 한 단어 수를 계산하는 방법을 모르겠습니다. 누군가가 솔루션을 게시하여 배울 수 있거나 적어도 멋진 방법을 보여 주면 감사합니다!

해결법

  1. ==============================

    1.집합을 사용하여 중복을 제거한 다음 len 함수를 사용하여 집합의 요소를 계산할 수 있습니다.

    집합을 사용하여 중복을 제거한 다음 len 함수를 사용하여 집합의 요소를 계산할 수 있습니다.

    len(set(new_words))
    
  2. ==============================

    2.또한 collections.Counter를 사용하여 코드를 리팩터링하십시오.

    또한 collections.Counter를 사용하여 코드를 리팩터링하십시오.

    from collections import Counter
    
    words = ['a', 'b', 'c', 'a']
    
    Counter(words).keys() # equals to list(set(words))
    Counter(words).values() # counts the elements' frequency
    
  3. ==============================

    3.세트 사용 :

    세트 사용 :

    words = ['a', 'b', 'c', 'a']
    unique_words = set(words)             # == set(['a', 'b', 'c'])
    unique_word_count = len(unique_words) # == 3
    

    이 무장 한 솔루션은 다음과 같이 간단 할 수 있습니다.

    words = []
    ipta = raw_input("Word: ")
    
    while ipta:
      words.append(ipta)
      ipta = raw_input("Word: ")
    
    unique_word_count = len(set(words))
    
    print "There are %d unique words!" % unique_word_count
    
  4. ==============================

    4.값, 개수 = np.unique (words, return_counts = True)

    값, 개수 = np.unique (words, return_counts = True)

  5. ==============================

    5.집합이 가장 쉬운 방법이지만, dict를 사용하고 some_dict.has (key)를 사용하여 고유 한 키와 값으로 사전을 채울 수도 있습니다.

    집합이 가장 쉬운 방법이지만, dict를 사용하고 some_dict.has (key)를 사용하여 고유 한 키와 값으로 사전을 채울 수도 있습니다.

    이미 사용자의 입력으로 단어 []를 채웠다 고 가정하면 목록의 고유 단어를 숫자로 매핑하는 dict을 작성하십시오.

    word_map = {}
    i = 1
    for j in range(len(words)):
        if not word_map.has_key(words[j]):
            word_map[words[j]] = i
            i += 1                                                             
    num_unique_words = len(new_map) # or num_unique_words = i, however you prefer
    
  6. ==============================

    6.ndarray에는 unique이라는 numpy 메소드가 있습니다.

    ndarray에는 unique이라는 numpy 메소드가 있습니다.

    np.unique(array_name)
    

    예 :

    >>> np.unique([1, 1, 2, 2, 3, 3])
    array([1, 2, 3])
    >>> a = np.array([[1, 1], [2, 3]])
    >>> np.unique(a)
    array([1, 2, 3])
    

    시리즈의 경우 value_counts () 함수 호출이 있습니다.

    Series_name.value_counts()
    
  7. ==============================

    7.

    ipta = raw_input("Word: ") ## asks for input
    words = [] ## creates list
    unique_words = set(words)
    
  8. ==============================

    8.다음은 작동해야합니다. 람다 함수는 중복 된 단어를 필터링합니다.

    다음은 작동해야합니다. 람다 함수는 중복 된 단어를 필터링합니다.

    inputs=[]
    input = raw_input("Word: ").strip()
    while input:
        inputs.append(input)
        input = raw_input("Word: ").strip()
    uniques=reduce(lambda x,y: ((y in x) and x) or x+[y], inputs, [])
    print 'There are', len(uniques), 'unique words'
    
  9. ==============================

    9.나는 세트를 사용 하겠지만, 여기 또 다른 방법이있다.

    나는 세트를 사용 하겠지만, 여기 또 다른 방법이있다.

    uniquewords = []
    while True:
        ipta = raw_input("Word: ")
        if ipta == "":
            break
        if not ipta in uniquewords:
            uniquewords.append(ipta)
    print "There are", len(uniquewords), "unique words!"
    
  10. ==============================

    10.

    ipta = raw_input("Word: ") ## asks for input
    words = [] ## creates list
    
    while ipta: ## while loop to ask for input and append in list
      words.append(ipta)
      ipta = raw_input("Word: ")
      words.append(ipta)
    #Create a set, sets do not have repeats
    unique_words = set(words)
    
    print "There are " +  str(len(unique_words)) + " unique words!"
    
  11. from https://stackoverflow.com/questions/12282232/how-do-i-count-unique-values-inside-a-list by cc-by-sa and MIT license