Computer >> Máy Tính >  >> Lập trình >> Python

Python Nhóm các chuỗi con tương tự trong danh sách

Trong hướng dẫn này, chúng ta sẽ viết một chương trình nhóm các chuỗi con tương tự nhau từ một danh sách. Hãy xem một ví dụ để hiểu rõ hơn.

Đầu vào

 string =['tutorial-python', 'tutorial-c', 'tutorial-java', 'tutorial-javascript', 'python-1', 'python-2', 'javascript-1']  

Đầu ra

 [['tutorial-python', 'tutorial-c', 'tutorial-java', 'tutorial-javascript'], ['python-1', 'python-2'], ['javascript-1' ]] 

Chúng tôi sẽ sử dụng groupby phương pháp từ itertools mô-đun để giải quyết vấn đề. groupby phương thức sẽ nhóm tất cả các chuỗi tương tự thành một đối tượng iter. Đối với danh sách đã cho, chúng tôi đã tách chuỗi bằng - và chuyển phần đầu tiên của chuỗi vào groupby phương pháp.

Hãy xem các bước liên quan để giải quyết vấn đề này.

  • Khởi tạo danh sách các chuỗi.
  • Nhập mô-đun itertools.
  • Khởi tạo một danh sách trống.
  • Bây giờ, chuyển các chuỗi và một hàm lambda vào itertools.groupby phương pháp.
  • Hàm lambda sẽ trả về phần đầu tiên của chuỗi sau khi tách nó bằng -
  • theo nhóm phương thức sẽ trả về danh sách các bộ giá trị với phần tử và nhóm của nó.
  • Trong mỗi lần lặp lại, hãy chuyển nhóm các phần tử giống nhau thành một danh sách.
  • Nối danh sách vào danh sách trống.
  • In kết quả.

Ví dụ

 # nhập mô-đun itertools nhập itertools # khởi tạo các chuỗi ký tự =['tutorial-python', 'tutorial-c', 'tutorial-java', 'tutorial-javascript', 'python-1', 'python-2' , 'javascript-1'] # blank listresult =[] # iterator # hàm lambda sẽ trả về phần đầu tiên từ stringiterator =itertools.groupby (string, lambda string:string.split ('-') [0]) # lặp qua phần tử result # và phần tử groupfor của nó, nhóm trong trình lặp:# nối nhóm bằng cách chuyển nhóm đó thành kết quả danh sách.append (danh sách (nhóm)) # in kết quả (kết quả) 

Đầu ra

Nếu bạn chạy đoạn mã trên, thì bạn sẽ nhận được kết quả sau.

>

Kết luận

Nếu bạn có bất kỳ nghi ngờ nào trong hướng dẫn, hãy đề cập đến chúng trong phần bình luận.