Форум сайта python.su
Python3Gates
А в вашей программе как-нибудь можно сделать файловый вывод?
with open("file.tsv", "r") as f, open('out.txt', 'w') as o: a = {str(i): [] for i in range(1, 12)} [a[i[0]].append(int(i[2])) for i in map(lambda x: x.split('\t'), f.read().split('\n')) if i[0]] o.write('\n'.join([' '.join((i, str(sum(a[i])/len(a[i]) if len(a[i]) > 0 else '-' ))) for i in map(str, range(1, 12))]))
Офлайн
Python3Gates
вот мой вариант
Traceback (most recent call last):
File "test.py", line 16, in <module>
value = [i + 1, ' ', t[i] / t2[i], '\n']
ZeroDivisionError: integer division or modulo by zero
Офлайн
terabayt, спасибо.
А ещё вам передали :
— Слишком много инлайна, конструкции перегруженные.
— Присутствие range с magic numbers и обращение к элементам списка по индексу — повод задуматься.
— Код написан не по pep8.
Отредактировано Python3Gates (Дек. 27, 2014 06:09:01)
Офлайн
То же решение но читаемо
with open("myfile.txt") as file: students = {str(i): [] for i in range(1, 12)} for line in file: line = line.strip().split('\t') person = line[2] key = line[0] if key in students: students.get(key).append(person) for key in students: sum = 0 size = len(students.get(key)) if len(students.get(key)) > 0: for elem in students.get(key): sum += int(elem) print(key,round(sum / size, 5)) else: print(key, '-')
Отредактировано mechmedved (Май 22, 2020 11:43:46)
Офлайн
mechmedved
не прошло и 6 лет
Python3Gates
Отредактировано Python3Gates (Дек. 27, 2014 06:09:01)
Офлайн