Ví dụ kết hợp python itertools

Python là một ngôn ngữ lập trình tuyệt vời, và nó chứa nhiều mô-đun tích hợp sẵn để giúp chúng ta viết mã tốt hơn, mã đẹp hơn

Mục tiêu

Thông qua bài viết này, chúng tôi sẽ sử dụng một vài mô-đun và ít phương pháp ít ai biết rằng có thể cải thiện cách mã của chúng tôi về cả phần nhìn và hiệu quả tính toán

tênTuple

Tôi tin rằng một số người chắc chắn đã biết về câu lệnh phổ biến hơn là

In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
0 từ mô-đun
In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
1 [Nếu chưa biết bạn có thể xem tại đây], nhưng kể từ phiên bản Python 3.6, một loại mới đã có trong module đánh máy
In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
2 . Cả hai đều được thiết kế để giúp bạn nhanh chóng tạo ra những đối tượng bất biến có thể đọc được.

In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
2 thực ra là một phiên bản viết lại của
In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
0 , và theo quan điểm của tôi .

In [2]: import typing                                                                                                                                                                                               

In [3]: class BetterLookingArticle[typing.NamedTuple]: 
   ...:     title: str 
   ...:     id: int 
   ...:     description: str = "No description given." 
   ...:                                                                                                                                                                                                             

In [4]: BetterLookingArticle[title="Python is cool.", id=1]                                                                                                                                                  
BetterLookingArticle[title='Python is cool.', id=1, description='No description given.']

Còn thay vào đó nếu ta sử dụng

In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
0 .

In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]

mảng. mảng

Các mảng giá trị hiệu quả. Array là những loại trình tự hoạt động rất giống với danh sách, ngoại trừ các loại đối tượng được lưu trữ bị giới hạn chế độ

Khi sử dụng module

In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
2 , chúng ta cần khởi tạo bằng 1 typecode kiểu mã mà trong đó tất cả các thành phần tử đều được . Hãy so sánh hiệu quả tính toán về thời gian với một danh sách thông thường, viết nhiều số nguyên trong một tệp [sử dụng mô-đun
In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
3 để viết một danh sách thông tin .

https. //ý chính. github. com/AdamGold/961758c66cdfe92642eabb61d9ce9866

Có thể thấy là nhanh hơn gấp 14 lần bình thường. Tất nhiên cũng phụ thuộc vào module pickle , nhưng sử dụng mảng vẫn gọn gàng hơn so với sử dụng danh sách. Vì vậy, nếu bạn đang sử dụng các giá trị đơn giản đó, bạn nên cân nhắc việc sử dụng mô-đun array.

You can you want to view

  Phân tích hơn 80 email từ chối ứng tuyển vào vị trí lập trình viên Python và kết quả không ai ngờ tới.

Việc làm Python không yêu cầu kinh nghiệm

itertools. kết hợp

In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
4 is a object module. Nó có rất nhiều phương thức khác nhau giúp tiết kiệm thời gian tiết kiệm, tất cả đều được liệt kê ở đây. Thậm chí còn có cả một kho GitHub viết nhiều hơn về itertools.

Tôi đã sử dụng phương thức kết hợp combinations trong tuần này và tôi nghĩ là tôi sẽ chia sẻ về nó. Phương thức này lấy một số vòng lặp và một số nguyên làm đối số, đồng thời tạo ra một trình bao gồm tất cả các tổ hợp có thể được phép của vòng lặp với một chuỗi số nguyên dài nhất mà không bị trùng lặp.

In [16]: import itertools                                                                                                                                                                                           
In [17]: list[itertools.combinations[[1, 2, 3, 4], 2]]                                                                                                                                                       
[[1, 2], [1, 3], [1, 4], [2, 3], [2, 4], [3, 4]]

mệnh lệnh. từ khóa

Đây là cách viết một chính tả nhanh chóng và đẹp mắt với giá trị mặc định

In [18]: dict.fromkeys[["key1", "key2", "key3"], "DEFAULT_VALUE"]                                                                                                                                            
{'key1': 'DEFAULT_VALUE', 'key2': 'DEFAULT_VALUE', 'key3': 'DEFAULT_VALUE'}

Cuối cùng nhưng không mất phần quan trọng – Module dis

Mô-đun

In [6]: import collections                                                                                                                                                                                          

In [7]: Article = collections.namedtuple["Article", ["title", "description", "id"]]                                                                                                                                 

In [8]: Article[title="Python is cool.", id=1, description=""]                                                                                                                                               
Article[title='Python is cool.', description='', id=1]
5 Hỗ trợ phân tích bytecode CPython bằng cách tách nó.

Có thể bạn đã biết hoặc chưa biết, Python dịch mã nguồn thành một tập hợp các tên gọi duy nhất là “bytecode”. Mô-đun dis giúp chúng tôi xử lý những chỉ thị này và đồng thời nó cũng là một công cụ gỡ lỗi tuyệt vời.

Đây là một ví dụ trong cuốn sách Fluent Python

________số 8

Bị lỗi nhưng hệ thống vẫn hoạt động. in sao lại như vậy?

In [25]: dis.dis["t[a] += b"]                                                                                                                                                                                       
  1           0 LOAD_NAME                0 [t]
              2 LOAD_NAME                1 [a]
              4 DUP_TOP_TWO
              6 BINARY_SUBSCR
              8 LOAD_NAME                2 [b]
             10 INPLACE_ADD --> [value in t[a]] += b --> succeeds because list is mutable
             12 ROT_THREE
             14 STORE_SUBSCR --> Assign t[a] = our list --> Fails, t[a] is immutable.
             16 LOAD_CONST               0 [None]
             18 RETURN_VALUE

Trước khi kết thúc…

via GIPHY

Cảm ơn vì đã đọc. Để biết thêm các bài viết liên quan đến Python và các nội dung thú vị khác, bạn có thể theo dõi tôi trên Medium hoặc GitHub [Tôi đánh dấu một số bản lưu trữ tuyệt vời. ]

Xin cảm ơn các bạn đã đọc bài viết này. Để đọc nhiều bài viết hơn về Python và các chủ đề hay chủ đề khác, bạn có thể theo dõi tôi trên Medium hoặc GitHub […

Nếu bạn thích bài viết này, hãy nhấn giữ nút 👏 để những người khác có thể tìm thấy bài viết. Bạn càng giữ lâu, bạn sẽ càng chia sẻ cho nhiều người hơn.

Chủ Đề