Rumah  >  Soal Jawab  >  teks badan

Mengenai masalah mengira bilangan jenis berangka yang berbeza dalam senarai integer dalam Python.

Dalam kod berikut, kind_num digunakan untuk mengira integer dengan beberapa nilai berbeza dalam senarai integer.

class Solution(object):
    def distributeCandies(self, candies):
        """
        :type candies: List[int]
        :rtype: int
        """
        loc = len(candies)
        mol = loc % 2
        if not (2 <= loc <= 10000) or mol != 0:
            return 'wrong length of array'
        for num in candies:
            if not (-10000 <= num <= 10000):
                return 'wrong element in array'

        kind_num = 0
        sis_num = loc / 2
        for candy in candies:
            kind_num += 1
            while True:
                try:
                    candies.remove(candy)
                    print candies
                except ValueError:
                    break
        if kind_num > sis_num:
            return sis_num
        elif kind_num < sis_num:
            return kind_num
        else:
            return sis_num


s = Solution()

print s.distributeCandies([1,1,2,2,3,3])

Tetapi gelung kedua keluar awal sebelum melengkapkan nilai dalam gula-gula Mengapa ini? ? ?

大家讲道理大家讲道理2676 hari yang lalu887

membalas semua(3)saya akan balas

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-06-22 11:54:27

    Jangan keluarkan dalam gelung

    Jika anda hanya mahu mengira pelbagai jenis nilai

    #统计出现次数
    lst = [1,1,2,2,3,3,4,4,5,6]
    print len(set(lst))
    
    #统计每种各出现几次
    from collections import Counter
    print dict(Counter(lst))
    

    balas
    0
  • 天蓬老师

    天蓬老师2017-06-22 11:54:27

    candies.remove(candy) dilaksanakan buat kali pertama Ok, gula-gula dikeluarkan; Jadi berbuka.

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-06-22 11:54:27

    from collections import defaultdict
    
    d = defaultdict(int)
    
    for item in your_list:
        d[item] += 1
        
    print d

    balas
    0
  • Batalbalas