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

Nhóm Python bằng cách đối sánh giá trị bộ giá trị thứ hai trong danh sách các bộ giá trị

Trong hướng dẫn này, chúng ta sẽ viết một chương trình nhóm tất cả các bộ giá trị từ một danh sách có cùng phần tử với phần tử thứ hai. Hãy xem một ví dụ để hiểu rõ điều đó.

Đầu vào

[('Python', 'tutorialspoints'), ('Management', 'other'), ('Django', 'tutorialspoints'), ('React',
'tutorialspoints'), ('Social', 'other'), ('Business', 'other')]

Đầu ra

{'tutorialspoint': [('Python', 'tutorialspoints'), ('Django', 'tutorialspoints'), ('React', 'tutorialspoints')],
'other’: [('Management', 'other'), ('Social', 'other'), ('Business', 'other')]}

Chúng tôi phải nhóm các bộ giá trị từ danh sách. Hãy xem các bước để giải quyết vấn đề.

  • Bắt đầu một danh sách với các bộ giá trị bắt buộc.
  • Tạo một từ điển trống.
  • Lặp lại qua danh sách các bộ giá trị.
    • Kiểm tra xem phần tử thứ hai của bộ tuple đã có trong từ điển hay chưa.
    • Nếu nó đã có, thì hãy nối bộ hiện tại vào danh sách của nó.
    • Khởi tạo khóa khác bằng một danh sách với bộ giá trị hiện tại.
  • Cuối cùng, bạn sẽ nhận được một từ điển với các sửa đổi cần thiết.

Ví dụ

# initializing the list with tuples
tuples = [('Python', 'tutorialspoints'), ('Management', 'other'), ('Django', 't
ialspoints'), ('React', 'tutorialspoints'), ('Social', 'other'), ('Business', 'othe
r')]
# empty dict
result = {}
# iterating over the list of tuples
for tup in tuples:
   # checking the tuple element in the dict
   if tup[1] in result:
      # add the current tuple to dict
      result[tup[1]].append(tup)
   else:
      # initiate the key with list
      result[tup[1]] = [tup]
# priting the result
print(result)

Đầu ra

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

{'tutorialspoints': [('Python', 'tutorialspoints'), ('Django', 'tutorialspoints
('React', 'tutorialspoints')], 'other': [('Management', 'other'), ('Social', 'other
'), ('Business', 'other')]}

Chúng tôi bỏ qua nếu điều kiện trong chương trình trên bằng cách sử dụng defaultdict . Hãy giải quyết nó bằng cách sử dụng defaultdict .

Ví dụ

# importing defaultdict from collections
from collections import defaultdict
# initializing the list with tuples
tuples = [('Python', 'tutorialspoints'), ('Management', 'other'), ('Django', 't
ialspoints'), ('React', 'tutorialspoints'), ('Social', 'other'), ('Business', 'othe
r')]
# empty dict with defaultdict
result = defaultdict(list)
# iterating over the list of tuples
for tup in tuples:
   result[tup[1]].append(tup)
   # priting the result
   print(dict(result))

Đầu ra

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

{'tutorialspoints': [('Python', 'tutorialspoints'), ('Django', 'tutorialspoints
('React', 'tutorialspoints')], 'other': [('Management', 'other'), ('Social', 'other
'), ('Business', 'other')]}

Kết luận

Bạn có thể giải quyết nó theo nhiều cách khác nhau tùy thích. Chúng tôi đã thấy hai cách ở đây. 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.