Member 13360418 Ответов: 7

Помогите мне сделать эту программу


Напишите функцию Python frequency (l) , которая принимает в качестве входных данных список целых чисел и возвращает пару вида (minfreqlist, maxfreqlist), где
minfreqlist - это список чисел с минимальной частотой в l, отсортированных в порядке возрастания
maxfreqlist - это список чисел с максимальной частотой в l, отсортированных по возрастанию
Например
>> & gt; частота ([13,12,11,13,14,13,7,11,13,14,12])
([7], [13])

>> & gt; частота ([13,12,11,13,14,13,7,11,13,14,12,14,14])
([7], [13, 14])

>> & gt; частота ([13,12,11,13,14,13,7,11,13,14,12,14,14,7])
([7, 11, 12], [13, 14])

Что я уже пробовал:

Я пробовал сделать для него программу...которая не работает должным образом...пожалуйста помочь

Richard MacCutchan

Покажите код, который вы пробовали, и объясните, в чем именно заключается проблема.

7 Ответов

Рейтинг:
2

Richard MacCutchan

Начните с подсчета числа вхождений каждого значения. Вам также нужен какой-то способ хранения этой информации, поэтому посмотрите на типы коллекций, которые могут хранить два значения вместе таким образом: возможно, словарь. Как только у вас есть эта информация, вы можете найти минимальные и максимальные вхождения. И как только у вас есть эти два значения, вы можете пройти через коллекцию, составляя список всех значений с минимальным количеством и всех значений с максимальным.


Рейтинг:
2

sreenjay

Я не собираюсь говорить вам решение, но я могу дать вам подсказку.

** Превратите этот список в пару ключ-значение. Где key-это элемент в списке, а value-количество элементов.

Это работает, так как вы можете создать уникальный словарь, содержащий только элементы и их соответствующую частоту.


Рейтинг:
2

Patrice T

< KickAss mode>
Возьмите лист бумаги и карандаш. Используйте свой мозг и решите проблему вручную. Поскольку Гарри Поттер не дал вам решение, нет никакой магии, и решение не прыгнуло вам в лицо.
Вы решили проблему, следуя процедуре, которая является вашим алгоритмом. Вам нужно записать шаги механическим способом (как компьютер). Программа будет следовать этим шагам.
< / KickAss mode>

Мы не делаем вашу домашнюю работу.
Домашнее задание предназначено не для того, чтобы проверить ваши навыки просить других людей выполнять вашу работу, а для того, чтобы заставить вас думать и помочь вашему учителю проверить ваше понимание пройденных вами курсов, а также проблем, возникающих при их применении.
Любая ваша неудача поможет учителю выявить ваши слабости и наметить меры по их исправлению.
Любая ваша неудача поможет вам узнать, что работает, а что нет, это называется "методом проб и ошибок".
Так что попробуйте, перечитайте свои уроки и начинайте работать. Если вы застряли на конкретной проблеме, покажите свой код и объясните эту точную проблему, мы можем помочь.

Как программист, ваша задача-создавать алгоритмы это решает конкретные проблемы, и вы не можете полагаться на кого-то другого, чтобы вечно делать это за вас, поэтому есть время, когда вам придется научиться этому. И чем скорее, тем лучше.
Когда вы просто просите решение, это все равно что пытаться научиться водить машину, обучая кого-то другого.
Создание алгоритма-это в основном поиск математики и необходимая адаптация к вашей реальной задаче.

Идея "развития" заключается в том, что это слово предполагает: "систематическое использование научно-технических знаний для достижения конкретных целей или требований." BusinessDictionary.com[^]
Это не то же самое, что "быстро гуглите и сдавайтесь, если я не могу найти точно правильный код".

Цитата:
Я пробовал сделать для него программу...которая не работает должным образом

Покажите свой код, чтобы получить помощь по нему.


Рейтинг:
2

Member 13371296

частота def(l):
результат = {}
за я в л:
результат[я] = я.(я)

возвращение ([мин(результат.ключи())],[Макс(результат.ключи())])


Рейтинг:
1

OriginalGriff

Мы не делаем домашнее задание: оно задано не просто так. Она существует для того, чтобы вы думали о том, что вам сказали, и пытались понять это. Он также существует для того, чтобы ваш наставник мог определить области, в которых вы слабы, и сосредоточить больше внимания на корректирующих действиях.
Поэтому, если вы пробовали, у вас есть код, возможно, с небольшой проблемой - для этого вам нужен отладчик.

Попробуйте сами, возможно, вы обнаружите, что это не так сложно, как вы думаете!

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


Рейтинг:
0

Member 13369740

import math
def frequency(l):
  a = []
  a = l
  b = []
  c = []
  k = ()
  minfreqlist = []
  maxfreqlist = []
  if len(l) == 0:
    k = ([],[])
    return k
  if l.count(l[0]) == len(l):
    k = ([l[0]],[l[0]])
    return k
  a.sort()
  var = a[0]
  b.append(var)
  for i in range(len(a)):
    if a[i]!= var:
      var = a[i]
      b.append(var)
  for i in range(len(b)):
    c.append(a.count(b[i]))
  min_ = min(c)
  max_ = max(c)
  for i in range(len(c)):
    if c[i] == min_:
      minfreqlist.append(b[i])
    elif c[i] == max_:
      maxfreqlist.append(b[i])
  k = (minfreqlist,maxfreqlist)
  return k


Richard MacCutchan

Пожалуйста, не делайте за людей домашнюю работу, это бесполезно.

Рейтинг:
0

Member 13373211

def frequency(list):
  x = {}
  minlist = []
  maxlist = []
  
  for i in list:
    x[i] = x.get(i,0) + 1
    
  min_val = min(x.values())
  for key in x.keys():
    if x[key] == min_val:
      minlist = key
        
  max_val = max(x.values())
  for key in x.keys():
    if x[key] == max_val:
      maxlist = key
      
  
  return ([minlist],[maxlist])