محمدرضا هلالی
2 سال پیش توسط محمدرضا هلالی مطرح شد
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 خروجی گرفت ممنون میشم بگید


ثبت پرسش جدید

به همدیگه کمک کنیم

به محمدرضا هلالی کمک کنید تا مشکل خودش را حل کند؛ این‌طور می‌توانیم با هم پیشرفت کنیم.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام