Форум сайта python.su
0
Помогите отсортировать список.
Есть такой код:
Может кто еще подскажет как найти медиану списка?????
Нельзя использовать оператор деления по модулю!!!!
count=0 List=[] total=0 while True: a= input("enter a number or Enter to finsh:") if a: try: number=int(a) except ValueError as err: print(err) continue total+=number count+=1 list.append(List,number) Li=len(List) else: break i=0 min=List[i] max=List[i] while i<len(List): if List[i]<min: min=List[i] if List[i]>max: max=List[i] i+=1 I=1 J=1 for I in (count): #сортировка списка List for J in (count-I): if List[i]>List[i+1]: temp=List[i] List[i]=List[i+1] List[i+1]=temp J+=1 I+=1 print ("sdfgdfgd ========------", count) if count: print("List = ",List) print("count = ",count,"Total = ",total,"Seredne = ", total/count, "Min = ", min, "Max = ", max)
Отредактировано Agera (Март 23, 2013 21:01:02)
Офлайн
88
Это смешно, что-ль? Возле ValueError и list.append, недалеко, было про help(list).
Думал бубль гум уже не выпускают.
Офлайн
0
Непонят что Shaman имеете ввиду.
Может кто еще подскажет как найти медиану списка?????
Нельзя использовать оператор деления по модулю!!!!
Отредактировано Agera (Март 23, 2013 21:01:57)
Офлайн
43
а что такое медиана списка?
Офлайн
88
А код уже заработал?
Офлайн
0
Да код заработал, с сортировкой разобрался!
Медиана — это число в середине набора чисел: половина чисел имеют значения большие, чем медиана, а половина чисел — меньшие. Например, медианой для 2, 3, 3, 5, 7 и 10 будет 4.
Вот код:
count=0 List=[] total=0 while True: a= input("enter a number or Enter to finsh:") if a: try: number=int(a) except ValueError as err: print(err) continue total+=number count+=1 list.append(List,number) Li=len(List) else: break i=0 min=List[i] max=List[i] while i<len(List): if List[i]<min: min=List[i] if List[i]>max: max=List[i] i+=1 if count: print("List = ",List) print("count = ",count,"Total = ",total,"Seredne = ", total/count, "Min = ", min, "Max = ", max) for I in range(count): idxMin=I for J in range(I+1,count): if List[J]<List[idxMin]: idxMin=J temp=List[idxMin] List[idxMin]=List[I] List[I]=temp print(List)
Офлайн
43
а для списка 1 2 3 4 что будет медианой?
Офлайн
0
Медиана(Википедия)
в выборке {1, 2, 3, 4} медианой, по определению, может служить любое число из интервала (2,3)). На практике в этом случае чаще всего используют среднее арифметическое двух средних значений.
Офлайн
88
Выбирать меньшее из максимальных и большее из минимальных. Из полученных двух сотворить медиану.
И если проход сортировки прошел без обмена, сортировку можно прекращать - список может быть достаточно упорядоченным.
Отредактировано Shaman (Март 23, 2013 21:38:06)
Офлайн
43
def med(lst): lst = sorted(lst) hf = len(lst) // 2 if hf*2 == len(lst): return (max(lst[:hf]) + min(lst[hf:])) / 2 else: return lst[hf] med([2,3,3,5,7,10]) Out[17]: 4.0 med([1,2,3,4]) Out[18]: 2.5
Офлайн