In lạiTác giả: Vũ trụ không gianThời gian cập nhật: 2023-11-04 06:43:58344
Hiện nay tôi đang làm một bài tập về nhà:
Viết và kiểm tra một hàm sửa đổi_list đó, đưa ra một danh sách các số dấu phẩy động làm tham số, tính giá trị trung bình của các giá trị trong danh sách và loại bỏ tất cả các giá trị lớn hơn giá trị trung bình khỏi danh sách đã cho.
Mã của tôi cho đến nay trông như thế này:
def sửa đổi_list(L):
trung bình = tổng(L) / (len(L)) j=0 cho J trong L: nếu J>trung bình: L.pop(J) khác: j=j+1
L=[3,12,2,21,2,1,2]
sửa đổi_list(L)
in(L)
Cho đến nay tôi đã chuyển danh sách cho hàm sửa đổi_list, rồi tính giá trị trung bình của danh sách. Sau đó tôi có một for Vòng lặp lấy từng giá trị trong danh sách và so sánh nó với giá trị trung bình. Nếu các giá trị trong danh sách lớn hơn mức trung bình, hãy chuyển L.pop(J) Xóa nó. Vấn đề duy nhất là lỗi của tôi, đó là:
Traceback (most recent call last): Tệp "/Users/nathan/CP/test/src/test.py", dòng 22, trong sửa đổi_list(L) Tệp "/Users/nathan/CP/test/src/test.py", dòng 17, trong Modify_list L.pop(J) IndexError: bật chỉ mục ra khỏi phạm vi
tôi có nên thử không while vòng lặp thay vì for xe đạp?
Tôi đã tạo một vòng lặp while và nó hoạt động tốt...mặc dù L.remove(i) cũng hoạt động tốt. Tôi vẫn không hiểu tại sao L.remove(i) lại là một ý tưởng tồi. Đây là mã mới của tôi:
Câu hỏi này khó có thể giúp ích cho bất kỳ khách truy cập nào trong tương lai; nó chỉ liên quan đến một khu vực địa lý nhỏ, một thời điểm cụ thể hoặc một tình huống rất hẹp thường không áp dụng cho khán giả Internet toàn cầu. Để giúp làm cho câu hỏi này được áp dụng rộng rãi hơn, hãy truy cập
Tôi là một lập trình viên xuất sắc, rất giỏi!