Ví dụ Graphlib Python

-> Mô-đun này được sử dụng để hoạt động với các cấu trúc       giống Đồ thị

-> Nó đã được giới thiệu trong Python 3. 9. 0 phiên bản

-> Mô-đun này chủ yếu được sử dụng để sắp xếp Tô pô       của Đồ thị

-> Nó cũng bao gồm tất cả các thuật toán Đồ thị

Để cài đặt mô-đun này, hãy mở dấu nhắc lệnh     và  chạy lệnh dưới đây

Ví dụ Graphlib Python

Để sử dụng các mô-đun này, hãy nhập thủ công bằng cách sử dụng câu lệnh nhập

Ví dụ Graphlib Python

Kiến thức cơ bản về Đồ thị

Trong mô-đun tiếp theo, chúng ta sẽ thảo luận một số thông tin về Đồ thị

PEP 616 cung cấp hai phương thức mới, ____14_______ và removesuffix(), như các phương thức tích hợp sẵn cho các đối tượng chuỗi Python. Như gợi ý tên hàm, removeprefix() xóa một chuỗi tiền tố đã chỉ định khỏi một đối tượng chuỗi và removesuffix() xóa một chuỗi hậu tố đã chỉ định

Hãy xem xét một số ví dụ

>>> s = "I think Educative is awesome!"

>>> s.removeprefix("I think ")
'Educative is awesome!'

Như chúng ta có thể thấy, đối số của phương thức removeprefix() là tiền tố từ chuỗi

>>> s = "I think Educative is awesome!"

>>> s.removeprefix("I know ")
'I think Educative is awesome!'
1 mà chúng ta muốn xóa

Nếu tiền tố được đề cập không tồn tại trong chuỗi, thì kết quả là chuỗi ban đầu được trả về thay vì bất kỳ

>>> s = "I think Educative is awesome!"

>>> s.removeprefix("I know ")
'I think Educative is awesome!'
2 nào được ném ra. Ví dụ

>>> s = "I think Educative is awesome!"

>>> s.removeprefix("I know ")
'I think Educative is awesome!'

Trong tình huống mà bạn muốn biết rằng thực sự có một tiền tố và nó đã bị xóa, người ta có thể kiểm tra điều đó bằng cách so sánh độ dài của các chuỗi trước và sau lệnh gọi tới removeprefix(). Ví dụ

>>> if len(s) == len(s.removeprefix(prefix)):
>>>     print("No prefix was removed.")

>>> else:
>>>     print(f"Prefix {prefix} was removed.")

Tất nhiên, trong nhiều trường hợp, tốt hơn là chức năng "không thành công" và chỉ xóa tiền tố nếu có và chuyển qua nếu không.

Ý tưởng cơ bản tương tự áp dụng cho phương thức removesuffix() hoạt động trên các chuỗi, tất nhiên, điểm khác biệt chính của phương thức này là nó loại bỏ hậu tố của một chuỗi trái ngược với tiền tố. Một ví dụ nhỏ cho đầy đủ

>>> s = "Educative is awesome, I think!"

>>> s.removesuffix(", I think!")
'Educative is awesome'

Một điểm tinh tế cần được đề cập là nếu chúng ta không cung cấp hậu tố hoàn chỉnh, tức là một phần của chuỗi không kéo dài đến cuối chuỗi, thì chúng ta sẽ nhận lại chuỗi ban đầu giống như kết quả của mình. quan sát rằng

>>> s = "Educative is awesome, I think!"

>>> s.removesuffix(", I think")
'Educative is awesome, I think!'

Nghĩa là, vì chuỗi trong đối số của ____1_______5 không phải là hậu tố hoàn chỉnh của chuỗi ____1_______1, nó bị bỏ qua và thay vào đó, chuỗi ban đầu được trả lại cho người dùng

Có một số lợi ích trực tiếp khi thích sử dụng removeprefix()removesuffix() hơn là làm điều gì đó như sử dụng hàm

>>> s = "I think Educative is awesome!"

>>> s.removeprefix("I know ")
'I think Educative is awesome!'
9 mà Python cung cấp

>>> s = "Educative is awesome, I think!"
>>> s.replace(", I think", "")
'Educative is awesome'

Mặc dù hành vi trong trường hợp này mang lại cho chúng tôi những gì chúng tôi muốn, nhưng đằng sau hậu trường, phương pháp

>>> s = "I think Educative is awesome!"

>>> s.removeprefix("I know ")
'I think Educative is awesome!'
9 tốn kém hơn về mặt tính toán. Chúng tôi chắc chắn sẽ không nhận thấy bất kỳ sự khác biệt nào đối với các ví dụ về kích thước chúng tôi có ở đây

Nhưng nếu, giả sử, bạn đang thực hiện các thao tác chuỗi khác nhau trên các chuỗi gen lớn cho một dự án tin sinh học, thì bản chất tốn kém của việc sử dụng

>>> s = "I think Educative is awesome!"

>>> s.removeprefix("I know ")
'I think Educative is awesome!'
9 trên cả removeprefix() hoặc removesuffix() có thể đáng chú ý hơn nhiều, tùy thuộc vào kích thước dữ liệu của bạn

Một lợi ích có thể tranh cãi khác đối với các hàm removeprefix()removesuffix() là chúng mang tính mô tả hơn. Thay vì sử dụng một cái gì đó mờ đục và dễ vỡ cho một trường hợp cụ thể, nó trực tiếp hơn là kết quả cuối cùng của việc chạy tính toán trên chuỗi sẽ là gì

Nếu bạn đang cải tiến một dự án Python hiện có để tương thích với Python 3. 9, và nó tình cờ sử dụng các thao tác chuỗi khác nhau, có thể đáng xem xét nơi bạn có thể sử dụng các phương thức removeprefix()removesuffix() tiêu chuẩn hiện nay

Thông tin thêm về các phương pháp removeprefix()

>>> s = "I think Educative is awesome!"

>>> s.removeprefix("I know ")
'I think Educative is awesome!'
5 có thể được tìm thấy trong PEP 616 tương ứng – Phương pháp chuỗi để loại bỏ tiền tố và hậu tố

Graphlib trong Python là gì?

mô-đun của Python graphlib được giới thiệu trong Python 3. 9. 0, cung cấp cách sắp xếp theo cấu trúc liên kết của biểu đồ, trong đó biểu đồ được biểu diễn trong từ điển . Giả sử đồ thị không có các cạnh song song, đồ thị có thể được biểu diễn bằng một từ điển với các đỉnh là khóa và giá trị là các nút mà chúng được kết nối.

Python có thư viện đồ thị không?

python-graph (dist. python-graph-core, mod. pygraph) là thư viện để làm việc với đồ thị trong Python . Phần mềm này cung cấp cấu trúc dữ liệu phù hợp để biểu diễn đồ thị và toàn bộ các thuật toán quan trọng.

Thứ tự topo trong đồ thị là gì?

Sắp xếp tôpô hoặc thứ tự tôpô của đồ thị có hướng là sắp xếp tuyến tính các đỉnh của nó trong đó u xuất hiện trước v theo thứ tự cho mọi cạnh có hướng uv từ đỉnh u đến đỉnh . .

Sắp xếp topo hoạt động như thế nào?

Thuật toán sắp xếp tô pô lấy một đồ thị có hướng và trả về một mảng gồm các nút trong đó mỗi nút xuất hiện trước tất cả các nút mà nó trỏ tới . Thứ tự của các nút trong mảng được gọi là thứ tự topo. Đây là một ví dụ. Vì nút 1 trỏ đến nút 2 và 3 nên nút 1 xuất hiện trước chúng theo thứ tự.