Помогите решить задачу на языке Python (уровень для новичков)

Danil646

Новичок
Пользователь
Апр 5, 2021
1
0
1
Я начинающий программист на пайтон.. не могу решить задачу (уже «весь» нэт перерыл, нигде нет такой задачки, а для того, чтобы поступить на учебу, нужно решить именно эту задачу..

1617611722864.png
Если не трудно помогите.. буду очень благодарен
 

Dzenn

Новичок
Пользователь
Апр 5, 2021
4
1
3
Python:
def parity(input_list):
    res_int = []
    res_str = []

    for elem in input_list:

        if type(elem) == int:
            res_int.append(elem)
        elif type(elem) == str:
            res_str.append(elem.lower())

    for elem in res_int:
        if res_int.count(elem) % 2 == 0:
            return True
            break

    for elem in res_str:
        if res_str.count(elem) % 2 == 0:
            return True
            break

    return False

Можно без break'ов
 
Последнее редактирование:

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
947
214
43
20
Москва
Короткое решение:
Python:
def parity(mas):
    # Все строковые значения делаем в нижнем регистре
    mas = [i.lower() for i in mas if isinstance(i, str)] + \
        [i for i in mas if not isinstance(i, str)]
    # Создаем множество элементов массива (тут не будет повторяющихся элементов)
    elements = set(mas)
    # Считаем сколько есть элементов в массиве количество которых кратно двум, и если есть хоть 1 такой элемент, itog будет раен True
    return any([mas.count(i) % 2 == 0 for i in elements])

Вот без комментариев:
Python:
def parity(mas):
    mas = [i.lower() for i in mas if isinstance(i, str)] + \
        [i for i in mas if not isinstance(i, str)]
    elements = set(mas)
    return any([mas.count(i) % 2 == 0 for i in elements])



Если не секрет, куда поступаешь?
 

Preff

Новичок
Пользователь
Апр 3, 2021
3
0
1
Минск, Беларусь
Привет, это не сложно. Сам учусь удаленно с ноября прошлого года.

Python:
def even_numbers(array):
    arr_n = []
    for i in array:
        if type(i) == int:
            arr_n.append(i)
        elif type(i) == str:
            arr_n.append(i.lower())
    d = []
    for x in arr_n:
        cnt = arr_n.count(x)
        d.append(cnt)
    f = list(set(d))
    g = [elem for elem in f if elem % 2 == 0]
    if len(g) > 0:
        return True
    else:
        return False

А вот тут вывод функции при твоих примерах
first = [3,2,'two','apple','Apple']
second = [3, '3', 2, 'two', 'apple', 'apple', 'APPle']
even_numbers(first)
True
even_numbers(second)
False
 

Форум IT Специалистов