Как выбирать элементы, которые удвоены n разы в списке?

Осуществите функцию, повторенный (список, количество), что получил список, и возвратите список без повторенных элементов количество разы. Например:

repetidos([1, 2, 3, 3, 5, 8, 7, 7, 7, 2, 4, 3, 4], 3)

Вы возвратили бы [3, 7]

я это сделал:

def repetidos(lista, cantidad):
    lista_final = []
    for i in lista:
        if (i not in lista_final) and (i in cantidad):
            lista_final.append(i)
    return lista_final

def repetidos(lista, cantidad):
    num = lista.count (cantidad)
    return num
0
задан 08.11.2019, 09:09
2 ответа

Так как оно кажется упражнением, я буду давать тебе ответ, который похож, в которое habГ-эксперт, попробованный до настоящего времени, и дело в том, что есть лучшие способы это делать, но вероятный, что aГєn ты не знаешь их.

В quГ© бьют козырем твои функции

В первой funciГіn, который ты включаешь, ты создаешь список vacГ - в lista_final и делаешь цикл, который пробегает список [1, 2, 3, 3, 5, 8, 7, 7, 7, 2, 4, 3, 4] и анализирует если nГєmero estГЎ в lista_final (до aquГ - хорошо), и если nГєmero estГЎ в количестве , это проблема, так как количества 3 а следовательно условия if Гєnicamente идут истекать для числа, которое ты поместил в cantidad, и serГЎ Гєnico пронумеровал, что aГ±ada.

Вторая funciГіn, что ты попробовал то, что он делает, состоит в том, чтобы считать nГєmero раз, что estГЎ número, которые ты поместил в количество в lista.

CГіmo решать

PodrГ-Схвати использовать первую funciГіn, что у тебя есть, и если вместо того, чтобы перемещать его твой список, ты перемещаешь его один из типа [[numero,frecuencia],[numero, frecuencia],...] в этом случае

lista = [[1, 1], [2, 2], [3, 3], [4, 2], [5, 1], [6, 0], [7, 3]]

Единственный tendrГ-эксперт, что искать в quГ© случаи частота равна в nГєmero, который ты поместил в количество. Я повторяю, это не лучший способ это делать, но в существо упражнение, и использовать возможность ты funciГіn, я думаю, что он может помогать тебе понимать то, что estГЎs делая.

, Если ты выполняешь:

lista = [[1, 1], [2, 2], [3, 3], [4, 2], [5, 1], [6, 0], [7, 3]]

def repetidos(lista, cantidad):
    lista_final = []
    for i in lista:
        if (i[0] not in lista_final) and (i[1] == cantidad):
            lista_final.append(i[0])
    return lista_final

print(repetidos(lista, 3))

Получать список с частотами

Эта часть я ты она буду позволять делать ее, так как возможно делать с частями cГіdigo, что уже сделанный habГ-эксперт, но я говорю тебе шаги, которые нужно продолжать:

ты Можешь создавать одну funciГіn, что пробежал с 0 до mГЎximo nГєmero тебя lista, и который для каждый nГєmero aГ±ada в одной lista_nueva [número, cantidad de veces que aparece número en lista]

2
ответ дан 01.12.2019, 12:18

Прежде всего, я думаю, что ты это выдвинул неправильной формы, или впутался, объяснив это, ввиду того, что, если то, что он должен возвращать, является списком без повторенных элементов количество раз, не ты devolverГ - в 3 и 7, тебя devolverГ - в 1,2,5,8,2,4,4.

я помещаю Тебе два примера, чтобы получать Гєnicamente дублированные элементы X раз, он достаточно простой:

listaoriginal=[1, 2, 3, 3, 5, 8, 7, 7, 7, 2, 4, 3, 4]
def repetidos(lista, cantidad):
    listanoreps = list(dict.fromkeys(listaoriginal))
    for i in listanoreps:
        if listaoriginal.count(i)==cantidad:
            numreps.append(i)
    print(numreps)

Devoleria: [3, 7]

то, что он делает, состоит bГЎsicamente, в том, чтобы получать список без ningГєn повторенный, чтобы позже считать каждую из этих nГєmeros в первоначальном списке и этом aГ±ade в новый список, в котором только estarГЎn повторенные выражения.

Во втором случае, tambiГ©n достаточно простой, мы делаем цикл в vamos, который все те нужно считать nГєmeros, есть каждый, и если он совпадает с установленным количеством, просто входит в дополнительный цикл, который вертится так часто как количество, удаляя в каждом обороте копию повторенного числа:

listaoriginal=[1, 2, 3, 3, 5, 8, 7, 7, 7, 2, 4, 3, 4]
def repetidos(lista, cantidad):
    for num in listaoriginal:
        if lista.count(num)==cantidad:
           for i in range(cantidad):
                listaoriginal.remove(num)
    print(listaoriginal)

DevolverГ - В: [1, 2, 5, 8, 2, 4, 4]

Я Надеюсь, что он служил тебе помощью, если ты нуждаешься в какой-то explicaciГіn serГЎ удовольствие, помогать

Издало для aГ±adir cГіdigo заверши и предотвращать путаницу

1
ответ дан 01.12.2019, 12:18
  • 1
    В обеих функциях ты используешь переменные, которыми они не были признаны, из-за того, что в обоих случаях они будут давать ошибку – Adrián Sanz Wallace 08.11.2019, 11:21
  • 2
    Ú nicamente был примером как podrí чтобы это делать, очевидно потом он должен приспосабливать это к Вашему собственному có я говорю меняя мои переменные на его, больше, что давать ему có я говорю, что он старался объяснять ему, как оно функционировало – Ruben 08.11.2019, 12:21