محمدرضا هلالی
4 سال پیش توسط محمدرضا هلالی مطرح شد
0 پاسخ

رفع مشکل ماکزیمم و منیمم گرفتن داده های float

سلام من دارم یک برنامه مینوسم که داده های csv بگیره و نمرات مختلف که از دیکشنری ثبت کرده تبدیل به لیست کنه تا اینجا خیلی خوشحال به کد زنی ادامه دادم :)
اما اتفاقی افتاد که حالم بد کرد ارور 'float' object is not iterable بهم داده شد که اجازه نمیداد بتونم از داده های flaot لیست منیم بگیرم
روش مورد نظرم

lst = [5.0, 6.066666666666666, 7.5, 7.833333333333333, 9.75, 11.285714285714286, 11.375]
for items in lst:
    show = min(items,key = lambda x:float(x))
    print(show)

این مشکل فقط برای زمانی هست که میخوام حلقه بزارم خواستم بدونم چجوری میشه از float بدون type casting حلقه ایجاد کرد ؟
سوال بعدی مربوط به دوره مکتب خونه هست که سه تا معدل برتر ( همراه با اسم ) ، سه معدل پایین ( بدون اسم) میخواد که با روش بالا نتونستم پیاده کنم

def calculate_three_worst(input_file_name, output_file_name):
    d = dict()
    lst = []
    with open(path,newline = '',encoding = 'utf-8') as file:
        reader = csv.reader(file)
        for person in reader:
           name = person[0]
           grade = list()
           for avarge in  person[1:]:
               grade.append(int(avarge))
               d[name] = mean(grade)
               #print(d.items())
    lst = list(d.values())
    print(lst)
    for counter in d.items():
        a = sorted(d.items(), key=lambda x: x[1])
        print(a)
        break
#خروجی فعلی 
[7.5, 6.066666666666666, 11.285714285714286, 9.75, 7.833333333333333, 5, 11.375]
[('ali', 5), ('hamid', 6.066666666666666), ('mandana', 7.5), ('soheila', 7.833333333333333), ('sara', 9.75), ('sina', 11.285714285714286), ('sarvin', 11.375)]
#خروجی درست 
5.0
6.066666666666666
7.5

اگه روشی میدونید که میشه سه بار در یک حلقه از داده های float خروجی گرفت ممنون میشم بگید