Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
здравствуйте
0 / 3 / 0
Регистрация: 17.04.2021
Сообщений: 121

Что использовать вместо этого? Или как это починить и почему? (цикл for. перебор списка)

27.02.2022, 15:42. Показов 624. Ответов 7

Студворк — интернет-сервис помощи студентам
Python
1
2
3
4
for ar in arr:
        for i in arr:
            if ar != i:
                return arr
У нас есть список, например: [3, 2, 2, 2, 2] из него нужно вернуть 3. Но почему-то этот код не работает только тогда когда список начинается с нужного элемента. Я конечно догадываюсь почему, но не знаю как это решить.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.02.2022, 15:42
Ответы с готовыми решениями:

До версии 8.0 что использовали вместо регистра сведений и почему это было неудобно?
ййй

Что дает сравнение указателей, зачем это нужно и как это можно использовать
Подскажите пожалуйста. Что дает сравнение указателей, зачем это нужно и как это можно использовать ? Добавлено через 29 минут Еще...

Что использовать вместо _outp? Или есть книги по аппаратному программированию поновее?
Что использовать вместо _outp? В документации написано,что устарели,и их нет Или есть книги по аппаратному программированию поновее?

7
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38169 / 21104 / 4307
Регистрация: 12.02.2012
Сообщений: 34,693
Записей в блоге: 14
27.02.2022, 15:56
Цитата Сообщение от krokoboy Посмотреть сообщение
из него нужно вернуть 3
- дурацкая постановка. Нужно вернуть элемент, который не равен всем остальным? Так? Ты вообще Бог знает что написал. Возвращаешь весь массив...
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.02.2022, 16:08
Цитата Сообщение от krokoboy Посмотреть сообщение
из него нужно вернуть 3.
Python
1
2
3
4
5
6
>>> for i in arr:
    if i == 3:print(i); break
 
    
3
>>>
Формулируй задачу правильно.
0
здравствуйте
0 / 3 / 0
Регистрация: 17.04.2021
Сообщений: 121
27.02.2022, 16:26  [ТС]

Не по теме:

Извините, опечатался.


Вернуть нужно значение отличающееся от всех в списке.
Python
1
2
3
4
for ar in arr:
        for i in arr:
            if ar != i:
                return ar
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
27.02.2022, 16:35
Python
1
2
def foo(arr):
    return list(filter(lambda x: arr.count(x) == 1, arr))
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.02.2022, 16:50
Цитата Сообщение от krokoboy Посмотреть сообщение
Вернуть нужно значение отличающееся от всех в списке
Опять неверная формулировка.
Отличаться от всех может, например, уникальное значение (представленное в единственном экземпляре).

Code
1
[3, 2, 2, 2, 2,1]
Какое значение вернуть здесь?

3?
Или 3 и 1?
Или None?

Добавлено через 9 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
from collections import Counter
def uniq(arr):
    '''Вывод уникальных (встречающихся только один раз) 
    элементов в cписке
    
    >>> import random
    >>> arr = [random.randint(1, 1000) for i in range(1000000)]
    %timeit  -r 5 -n 5  list(uniq(arr))
    173 ms ± 5 ms per loop (mean ± std. dev. of 5 runs, 5 loops each)
    '''
    
    counter = Counter(arr)
    for k,v in counter.items():  
        if v == 1:
            yield k
0
здравствуйте
0 / 3 / 0
Регистрация: 17.04.2021
Сообщений: 121
27.02.2022, 17:03  [ТС]
Таково задание, что списка [3, 2, 2, 2, 2, 1] не может быть вовсе. Списки только такого формата: [3, 3, 3, 3, 5, 3] или [4, 4, 4, 4, 1, 4].

Не по теме:

извините за неправильную формулировку

0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.02.2022, 18:33
Цитата Сообщение от krokoboy Посмотреть сообщение
не может быть вовсе.
Ну это фактически тоже самое: вернуть то все равно требуется уникальный элемент.
А значит подойдет любой алгоритм или способ поиска уникальных элементов.
Классический алгоритм работает только на сортированном списке.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def uniq(arr):
    '''Вывод уникальных (встречающихся только один раз) 
    элементов в сортированном списке
    
    >>> import random
    >>> arr = [random.randint(1, 1000) for i in range(1000000)]
    >>> arr = sorted(arr)
    %timeit  -r 5 -n 5  list(uniq(arr))
    210 ms ± 2.58 ms per loop (mean ± std. dev. of 5 runs, 5 loops each)
    '''
    
    if len(arr) == 0: return 
    
    it = iter(arr)
    prev = next(it)
    cnt = -1
    for curr in it:
        if curr != prev:
            if cnt == -1:
                yield prev
            prev = curr
            cnt = -1
        else:
            cnt +=1
    if cnt == -1:
        yield prev

Python
1
2
3
arr = [3, 3, 3, 3, 5, 3]
 
print(list(uniq(sorted(arr))))
Code
1
[5]
Добавлено через 1 час 16 минут
Если тебя интересует самый простой (и плохой по асимптотике) способ выбора нахождения уникальных (единичных) элементов, то это алгоритм вложенного цикла (nested loop):

Python
1
2
3
4
5
6
7
8
9
def uniq(arr):          
    for i in range(len(arr)):
        cnt = 0
        for j in range(len(arr)):
            if arr[i]== arr[j]: 
                cnt+=1
                
        if cnt == 1:
            yield arr[i]
Python
1
2
numbers = [4, 4, 4, 4, 1, 4]
list(uniq(numbers))  # [1]
Добавлено через 4 минуты
А может у тебя вообще другое задание?
Найти первое число которое отличается от подряд идущих одинаковых элементов? То есть число, которое не входит ни в одну серию.... Н-да...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.02.2022, 18:33
Помогаю со студенческими работами здесь

Дружественные функции: что это и зачем это нужно (где, когда и как уместно их использовать)?
Здравствуйте. Нужна помощь в понимании дружественной функции класса. Я так понял, что данная функция видит все категории данных в...

Что лучше использовать QMake или CMake и почему?
Пользуюсь Qt 5.7 MSVC , Qt Creator. Что лучше использовать QMake или CMake и почему?

Почему это так работает или я что-то не догоняю?
Вот есть у меня скрипт, который обрабатывает запросы по ajax. Приходит запрос q в формате: q - имя класса, q - метод, q - массив с...

Почему используется *& вместо простого указателя и как это работает?
может кто-нибудь объяснить почему используется *& вместо простого указателя и как это работает? конкретно у метода D class proizvodcl :...

Почему Access жрет весь ресурс проца, чем это обусловлено и как бы от этого избавиться?
При запуске MS Access 97 загрузка процессора в диспетчере задач вырастает до 100%, причем независимо от того - пустой файл или там есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru