Tôi là Python Newbie đang cố gắng hiểu câu trả lời được đưa ra ở đây cho câu hỏi về việc đếm các từ độc đáo trong một tài liệu. Câu trả lời là: Show
Để thử hiểu điều đó, tôi đang cố gắng thực hiện nó trong Python từng bước. Tôi có thể nhập gạch văn bản bằng cách sử dụng mở và đọc, chia nó thành các từ riêng lẻ bằng cách tách và làm cho tất cả các chữ thường bằng cách sử dụng thấp hơn. Tôi cũng có thể tạo một tập hợp các từ độc đáo trong danh sách. Tuy nhiên, tôi không thể tìm ra cách thực hiện phần cuối cùng - đếm số lượng từ duy nhất. Tôi nghĩ rằng tôi có thể hoàn thành bằng cách lặp qua các mục trong tập hợp các từ duy nhất và đếm chúng trong danh sách chữ thường ban đầu, nhưng tôi thấy rằng cấu trúc tập hợp không thể lập chỉ mục. Vì vậy, tôi đoán tôi đang cố gắng làm một cái gì đó mà bằng ngôn ngữ tự nhiên là như thế, đối với tất cả các mục trong bộ, hãy cho tôi biết chúng có bao nhiêu lần chúng xảy ra trong danh sách chữ thường. Nhưng tôi không thể tìm ra cách làm điều đó, và tôi nghi ngờ một số hiểu lầm tiềm ẩn của Python đang giữ tôi lại.
Các bạn cảm ơn vì câu trả lời. Tôi vừa nhận ra rằng tôi đã không giải thích chính xác bản thân mình - tôi muốn tìm thấy không chỉ tổng số từ duy nhất (mà tôi hiểu là độ dài của tập hợp) mà cả số lần mỗi từ được sử dụng, ví dụ: 'The' đã được sử dụng 14 lần 'và' đã được sử dụng 9 lần, 'nó' đã được sử dụng 20 lần, v.v. Xin lỗi vì sự nhầm lẫn. Giả sử chúng ta có một danh sách các từ. Những từ này có thể xảy ra nhiều lần. Chúng ta phải hiển thị tần số của những từ này và đếm có bao nhiêu từ riêng biệt. Vì vậy, nếu đầu vào giống như Words = ["Book", "Sound", "Ngôn ngữ", "Máy tính", "Sách", "Ngôn ngữ"], thì đầu ra sẽ là (4, '2 1 2 1') Bởi vì có bốn từ riêng biệt, các từ thứ nhất và thứ ba đã xảy ra hai lần. Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước này -
Thí dụHãy cho chúng tôi xem các triển khai sau đây để hiểu rõ hơn from collections import OrderedDict def solve(words): d=OrderedDict() for w in words: if w in d: d[w] += 1 else: d[w] = 1 return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()]) words = ["Book", "Sound", "Language", "Computer", "Book", "Language"] print(solve(words)) Đầu vào["Book", "Sound", "Language", "Computer", "Book", "Language"] Đầu ra(4, '2 1 2 1')
Cập nhật vào ngày 12 tháng 10 năm 2021 08:02:11
Đếm số lượng từ duy nhất trong một chuỗi trong python #Để đếm số lượng từ duy nhất trong một chuỗi:
Sử dụng hàm from collections import OrderedDict def solve(words): d=OrderedDict() for w in words: if w in d: d[w] += 1 else: d[w] = 1 return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()]) words = ["Book", "Sound", "Language", "Computer", "Book", "Language"] print(solve(words))3 để có độ dài của danh sách.
Chúng tôi đã sử dụng phương thức from collections import OrderedDict def solve(words): d=OrderedDict() for w in words: if w in d: d[w] += 1 else: d[w] = 1 return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()]) words = ["Book", "Sound", "Language", "Computer", "Book", "Language"] print(solve(words))0 để chia chuỗi thành một danh sách các từ và sử dụng vòng lặp ["Book", "Sound", "Language", "Computer", "Book", "Language"]1 để lặp qua danh sách. Trên mỗi lần lặp, chúng tôi sử dụng toán tử Các thử nghiệm trong nhà điều hành để thành viên. Ví dụ, ["Book", "Sound", "Language", "Computer", "Book", "Language"]9 đánh giá thành (4, '2 1 2 1')0 nếu (4, '2 1 2 1')1 là thành viên của (4, '2 1 2 1')2, nếu không nó sẽ đánh giá thành (4, '2 1 2 1')3.
(4, '2 1 2 1')4 Trả về sự phủ định của ["Book", "Sound", "Language", "Computer", "Book", "Language"]9. Đặt đối tượng lưu trữ một bộ sưu tập không có thứ tự các yếu tố duy nhất, do đó việc chuyển đổi danh sách thành Bước cuối cùng là sử dụng hàm from collections import OrderedDict def solve(words): d=OrderedDict() for w in words: if w in d: d[w] += 1 else: d[w] = 1 return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()]) words = ["Book", "Sound", "Language", "Computer", "Book", "Language"] print(solve(words))3 để có được số lượng từ duy nhất.
Hàm Len () trả về độ dài (số lượng mục) của một đối tượng. Đối số mà hàm lấy có thể là một chuỗi (một chuỗi, tuple, danh sách, phạm vi hoặc byte) hoặc một bộ sưu tập (từ điển, bộ hoặc bộ đông lạnh). Ngoài ra, bạn có thể sử dụng vòng lặp ["Book", "Sound", "Language", "Computer", "Book", "Language"]1. Đếm số lượng từ duy nhất trong một chuỗi bằng cách sử dụng cho vòng lặp #Để đếm số lượng từ duy nhất trong một chuỗi:
Chúng tôi đã sử dụng phương thức from collections import OrderedDict def solve(words): d=OrderedDict() for w in words: if w in d: d[w] += 1 else: d[w] = 1 return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()]) words = ["Book", "Sound", "Language", "Computer", "Book", "Language"] print(solve(words))0 để chia chuỗi thành một danh sách các từ và sử dụng vòng lặp ["Book", "Sound", "Language", "Computer", "Book", "Language"]1 để lặp qua danh sách. Trên mỗi lần lặp, chúng tôi sử dụng toán tử ["Book", "Sound", "Language", "Computer", "Book", "Language"]8 để kiểm tra xem phần tử không có trong danh sách. Các thử nghiệm trong nhà điều hành để thành viên. Ví dụ, ["Book", "Sound", "Language", "Computer", "Book", "Language"]9 đánh giá thành (4, '2 1 2 1')0 nếu (4, '2 1 2 1')1 là thành viên của (4, '2 1 2 1')2, nếu không nó sẽ đánh giá thành (4, '2 1 2 1')3.
Phương thức Danh sách.Append () thêm một mục vào cuối danh sách.
Bước cuối cùng là sử dụng hàm from collections import OrderedDict def solve(words): d=OrderedDict() for w in words: if w in d: d[w] += 1 else: d[w] = 1 return len(d.keys()), ' '.join([str(d[k]) for k in d.keys()]) words = ["Book", "Sound", "Language", "Computer", "Book", "Language"] print(solve(words))3 để có được số lượng từ duy nhất trong chuỗi. |