один и тот же код дает различный вывод, даже если ввод одинаков - PullRequest
0 голосов
/ 20 июня 2019

Нам дан массив, и мы должны найти элемент, который встречался в массиве только один раз.

вход: массив = 1 2 3 6 5 4 4 2 5 3 6 1 6 5 3 2 4 1 2 5 1 4 3 6 8 4 3 1 5 6 2

#1
counte=[0]*(max(array)+1)
for i in array:
    counte[i]+=1
for j in range(len(counte)):
    if counte[j]==1:
        print(j)
        break
    else:
        pass


#2
counte=[0 for k in range(max(array)+1)]
for i in array:
    counte[i]+=1
print(counte)
for j in counte:
    if j==1:
        print(counte[j])
        break
    else:
        pass

code1 выводит значение 8, которое является правильным, но code2 выводит значение 5. Я не понимаю, почему выход code2 равен 5.

1 Ответ

0 голосов
/ 20 июня 2019

Вы слишком усложняете это, это должно дать вам счет - решите, что делать с тем, что случится только один раз:)

arr = [1, 3, 3, 1, 5, 8, 5, 4, 4]
for i in arr:
    print(str(i) + ' = ' + str(arr.count(i)))

PS.если ваша версия 3.6+, вы можете сделать ее еще лучше с помощью f-строк:

    print(f'{i} = {arr.count(i)}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...