Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python – Ánh xạ chỉ số ký tự trong danh sách chuỗi

Tạo dictionary ánh xạ mỗi ký tự đến danh sách chỉ số (1-based) của chuỗi chứa ký tự đó trong danh sách. Sử dụng defaultdict(set), enumerate() và add().

Mã nguồn


from collections import defaultdict

my_list = ['p y t h o n', 'i s', 'f u n', 't o', 'l e a r n']
print("Danh sách:", my_list)

my_result = defaultdict(set)
for index, element in enumerate(my_list):
    for sub in element.split():
        my_result[sub].add(index + 1)  # 1-based index

# Chuyển set sang list cho dễ đọc
my_result = {key: list(val) for key, val in my_result.items()}

print("Ánh xạ ký tự -> chỉ số chuỗi:", my_result)

Kết quả

Danh sách: ['p y t h o n', 'i s', 'f u n', 't o', 'l e a r n']
Ánh xạ ký tự -> chỉ số chuỗi: {'p': [1], 'y': [1], 't': [1, 4], 'h': [1], 'o': [1, 4], 'n': [1, 3, 5], 'i': [2], 's': [2], 'f': [3], 'u': [3], 'l': [5], 'e': [5], 'a': [5], 'r': [5]}

Giải thích

  • Mỗi phần tử trong list là chuỗi các ký tự cách nhau bởi dấu cách.
  • enumerate(my_list) cho (index 0-based, chuỗi).
  • element.split() tách thành các ký tự đơn lẻ.
  • defaultdict(set) tự động tạo set rỗng, add(index+1) thêm chỉ số 1-based (tránh trùng lặp).
  • Cuối cùng chuyển set sang list.

Kết quả: 't' xuất hiện ở chuỗi 1 ('python') và chuỗi 4 ('to') → [1, 4].