Cách thêm dãy số trong python
Lặp đi lặp lại nối vào một Sê-ri có thể tốn nhiều công sức tính toán hơn so với nối một lần. Một giải pháp tốt hơn là nối thêm các giá trị vào danh sách và sau đó nối danh sách với Sê-ri ban đầu cùng một lúc Show
Nếu không có giải thích về mối quan hệ giữa những con số này 5, 6 cho 7 đếm từ 1. Chỉ cần đoán. Chỉ từ cách diễn đạt (mặc dù sẽ tốt hơn nếu xem Bạn biết rằng vòng lặp for có thể lặp qua bất kỳ lần lặp nào không?
đặt 0 liên tiếp thành 0, 1, 2, đến 9, là các giá trịtừ 1. 2 là một hàm tạo. Một chức năng bình thườngđi.
để nó chạy đến khi hoàn thành, sau đó trả về kết quả Một hàm tạo trông như thế này
ví dụ: phiên bản đơn giản của 2
Bạn có muốn gọi chức năng này không, nó sẽ trả về ngay lập tức và bạn được trao một Trình tạo 4 có thể lặp lại, vì vậy bạn có thể sử dụng nó trong vòng lặp for 0mặc dù tất nhiên bạn thường làm điều này trực tiếp 1Bản thân hàm này không chạy cho đến khi bạn thử lặp lại nó. Sau đó, 5 và phép lặp của bạn nhận đượcgiá trị được truyền cho 5. Tại thời điểm đó, hàm bị tạm dừng, bạnthực hiện mọi việc với giá trị và sau đó, lần sau khi bạn lặp lại hàm sẽ tiếp tục. Vì vậy, có thể bạn đang được yêu cầu viết một hàm tạo để mang lại Tôi sẽ bắt đầu bằng cách viết một hàm chỉ cần 7 các giá trịtừ chuỗi. Làm cho công việc đó. Sau đó, thay thế các câu lệnh 7 bằng 5 và thử sử dụng hàm trong một vòng lặp, với phần thân của vòng lặpin ra các giá trị. (Thực ra, hãy giữ các 7, chúng sẽ cho phépbạn thấy quá trình thực thi chức năng của mình xen kẽ với vòng lặp. Chúc mừng! Trong chương trình này, chúng tôi yêu cầu người dùng nhập hai số và chương trình này hiển thị tổng của hai số do người dùng nhập Chúng tôi sử dụng chức năng tích hợp sẵn 8 để lấy đầu vào. Vì, 8 trả về một chuỗi, chúng tôi chuyển đổi chuỗi thành số bằng cách sử dụng hàm 0. Sau đó, các số được thêm vàoNgoài ra, chúng ta có thể thực hiện phép cộng này trong một câu lệnh mà không cần sử dụng bất kỳ biến nào như sau Trong suốt thời gian học đại học, tôi thường nghe thấy cụm từ “có một số cách để lột da một con mèo” được các giảng viên lặp đi lặp lại trong các lớp toán, toán ứng dụng và vật lý. Thật tồi tệ và bạo lực khi tôi tìm thấy cụm từ này của Mark Twain, nó gắn bó với tôi (đủ kỳ lạ) như một lời nhắc nhở nhẹ nhàng rằng luôn có vô số con đường khả thi mà một người có thể thực hiện để đạt được mục tiêu. Điều này giúp tôi khá nhiều khi quyết định sử dụng phương pháp nào trong mã hóa Trong những ngày đầu của tôi, tất cả những gì tôi biết là phạm vi () như một phương pháp để tạo các chuỗi tăng (hoặc giảm) đơn điệu trong Python. Sau đó, tôi được giới thiệu về xrange() và numpy. arange() mà sau đó khiến tôi phải sử dụng hmmm, với tư cách là một người mới, chiến lược để quyết định sử dụng chức năng nào là gì? 1. Phương pháp tích hợp. phạm vi()Phạm vi phương thức tích hợp ([bắt đầu,] dừng, [bước]) là phần giới thiệu đầu tiên của tôi về cách tạo chuỗi trong Python. Các đối số tùy chọn trong hàm được hiển thị trong ngoặc vuông. Phương thức range() tạo ra một đối tượng bất biến là một dãy số. Đối tượng phạm vi () có thể dễ dàng được chuyển đổi thành danh sách Python bằng cách đặt nó trong phương thức danh sách, ví dụ: tạo danh sách các giá trị từ 10 (bắt đầu) đến 0 (dừng) giảm dần theo gia số 2 (bước) 8Phương pháp này đã được chứng minh là rất hữu ích trong các vòng lặp for và khả năng hiểu danh sách giống nhau vì nó được tích hợp sẵn và hiệu quả. Để đo tốc độ của nó, tôi đã viết tập lệnh rất đơn giản này, cung cấp một lượng lớn thời gian chạy mẫu để thực thi phạm vi (10). Một phân phối thời gian chạy lớn (rt) cung cấp thước đo hợp lý về tốc độ trung bình mà một đối tượng range() được tạo ra 9Tập lệnh ngắn gọn này cung cấp thời gian chạy trung bình và độ không đảm bảo 1σ (hoặc độ lệch chuẩn) tính bằng nano giây. Người ta có thể sử dụng phương pháp ma thuật% timeit để có được một biện pháp tương tự. Chạy tập lệnh này cho chúng ta 0Có vẻ đủ nhanh nhưng có những lựa chọn thay thế nhanh hơn không? 2. Phương thức tích hợp Python 2. xphạm vi()Một phương thức tích hợp khác mà bạn có thể đã phát hiện ra trước khi chuyển sang Python 3 là xrange([start, ]stop, [step]). Nó xuất ra một đối tượng trình tạo. Giống như phạm vi (), nó rất hữu ích trong các vòng lặp và cũng có thể được chuyển đổi thành một đối tượng danh sách. Sử dụng một thử nghiệm tương tự như trước đây, chúng ta có thể đo thời gian chạy trung bình của nó và thu được kết quả 1Với biên độ lỗi, tốc độ thực thi của phạm vi () và xrange () khá giống nhau. Sự khác biệt chính là ở đầu ra - một lần lặp được cung cấp bởi phạm vi () và đầu ra đối tượng trình tạo bởi xrange(). So sánh việc sử dụng bộ nhớ giữa hai đối tượng mang lại, 2Mặc dù không có sự khác biệt về hiệu quả, đối tượng xrange() nhỏ hơn đáng kể về kích thước byte. Một trình tạo trình tự khác mà chúng ta có thể xem xét là trình tạo trình tự tồn tại trong thư viện NumPy 3. Phương pháp NumPy. cục mịch. sắp xếp()Phương pháp numpy. arange([start, ]stop, [step, ]dtype=None) từ NumPy cung cấp chức năng tạo chuỗi. Nó tạo ra một đối tượng mảng NumPy (hoặc numpy. ndarray). Chạy tập lệnh tương tự để xác định sản lượng thời gian chạy trung bình, 3Dựa trên thử nghiệm này, numpy. arange() thực thi trung bình gấp đôi thời gian chạy mà range() và xrange() thực hiện Với xrange() bị giới hạn ở Python 2 và numpy. arange() là hệ số tạo chuỗi chậm hơn hai lần so với cả xrange() và range(), câu trả lời có vẻ khá rõ ràng. Phương thức range() là cách hiệu quả nhất để tạo chuỗi tăng hoặc giảm đơn điệu trong Python. Mặc dù điều này có thể đúng, nhưng các đối tượng được tạo bởi mỗi phương thức sử dụng bộ nhớ khác nhau Hãy cẩn thận - đầu ra của từng phương phápThật vậy, phạm vi () thực thi nhanh hơn numpy. arange() và xuất ra một đối tượng có thể được chuyển đổi thành danh sách có thể lặp lại. Mặt khác, numpy. arange() cung cấp cho bạn một numpy. ndarray. Không còn nghi ngờ gì nữa, phạm vi () là một lựa chọn tốt hơn trong các vòng lặp for. Tuy nhiên, khi nói đến hoạt động trên chuỗi kết quả, mảng NumPy có lợi thế rõ ràng về cả mức tiêu thụ bộ nhớ và tốc độ Bắt đầu với bộ nhớ, chúng ta có thể tìm hiểu lượng bộ nhớ được sử dụng bởi một đối tượng danh sách Python so với mảng NumPy 4Các mảng NumPy chỉ chiếm ít dung lượng hơn trong kho lưu trữ bộ nhớ của trình biên dịch khiến chúng hoạt động hiệu quả hơn. Đây là thứ mà người ta có thể kiểm tra dễ dàng so sánh tốc độ thực hiện các phép tính số học cơ bản trên danh sách và numpy. ndarrays như đã được chứng minh trong bài viết khóa học web UCF này Nói chung, khám phá nhiều cách để lột da một con mèo, có thể nói, trong hành trình Python của một người có thể cung cấp cái nhìn sâu sắc để hiểu tầm quan trọng của tốc độ, chức năng và việc sử dụng bộ nhớ của các loại dữ liệu và phương thức khác nhau. Quan trọng nhất, việc viết các bài kiểm tra ngắn để so sánh thời gian chạy có thể giúp người ta nhận ra phương pháp nào sẽ tăng cả độ sạch và hiệu quả của mã |