读取行或idk时EOF

时间:2019-11-02 15:32:20

标签: python python-3.7

我正在做一个执行以下操作的程序。

  1. 您输入了“计数”。
  2. 然后为每个用空格分隔的“计数”输入一个值
  3. 您将得到输出:其中有多少重复,哪些重复的数字最高,再次用空格隔开

基本上是这样的: 输入:

8           
12 12 16 102 47 16 102 47

输出:

4 102

问题是我的代码没有得到一点,我也不知道问题出在哪里。 在我的python中可以使用,但在某些在线编译器中却没有,因此接收者的程序可能与在线站点存在相同的问题

def thing():
    global count
    count = int(input('n:'))
    if count > 100000:
        exit()
    elif count < 1:
        exit()
    else:
        wut()
def wut():
    idk = []
    inp = list(map(int,input('ai:').split(' ')))
    if len(inp) != count:
        exit()
    elif sum(inp) > 200000:
        exit()
    elif sum(inp) < 1:
        exit()
    else:
        for i in range(len(inp)):
            for x in range(i+1, len(inp)): 
                if inp[i] == inp[x]:
                    idk.append(inp[i])
    o = len(idk)
    idk.sort(reverse = True)
    print(o, idk[0])

thing()

在我的python 3.7.4中,它可以正常工作,但是我对此一无所获。

1 个答案:

答案 0 :(得分:0)

from collections import Counter

# Convert them all to an int
numbers = [int(i) for i in input("Numbers: ").split(" ")]

# Get number of input
count = len(numbers)

counter = Counter(numbers)

# Get the highest value of the most common values
max_dup, _ = max(counter.most_common(), key=lambda ele: ele[0])

# Get the amount of duplicates
dups = len(list(filter(lambda k: k[1] > 1, counter.items())))

print(dups, end=" ")

print(max_dup)

collections.Counter filter