Hướng dẫn python find most frequent string in list - python tìm chuỗi thường xuyên nhất trong danh sách

Với rất nhiều giải pháp được đề xuất, tôi ngạc nhiên khi không ai đề xuất những gì tôi coi là một giải pháp rõ ràng (đối với các yếu tố không thể so sánh nhưng có thể so sánh)-[____ 11] [1].

print most_common(['goose', 'duck', 'duck', 'goose'])
2 cung cấp chức năng nhanh, có thể tái sử dụng và cho phép bạn ủy thác một số logic khó khăn cho các thành phần thư viện tiêu chuẩn được thử nghiệm tốt. Xem xét ví dụ:

import itertools
import operator

def most_common(L):
  # get an iterable of (item, iterable) pairs
  SL = sorted((x, i) for i, x in enumerate(L))
  # print 'SL:', SL
  groups = itertools.groupby(SL, key=operator.itemgetter(0))
  # auxiliary function to get "quality" for an item
  def _auxfun(g):
    item, iterable = g
    count = 0
    min_index = len(L)
    for _, where in iterable:
      count += 1
      min_index = min(min_index, where)
    # print 'item %r, count %r, minind %r' % (item, count, min_index)
    return count, -min_index
  # pick the highest-count/earliest item
  return max(groups, key=_auxfun)[0]

Điều này có thể được viết chính xác hơn, tất nhiên, nhưng tôi đang nhắm đến sự rõ ràng tối đa. Hai tuyên bố

print most_common(['goose', 'duck', 'duck', 'goose'])
3 có thể không được đưa ra để thấy tốt hơn các máy móc hoạt động; Ví dụ, với các bản in chưa được đưa ra:

print most_common(['goose', 'duck', 'duck', 'goose'])

emits:

SL: [('duck', 1), ('duck', 2), ('goose', 0), ('goose', 3)]
item 'duck', count 2, minind 1
item 'goose', count 2, minind 0
goose

Như bạn thấy,

print most_common(['goose', 'duck', 'duck', 'goose'])
4 là danh sách các cặp, mỗi cặp một mục theo sau là chỉ mục của mục trong danh sách ban đầu (để thực hiện điều kiện chính, nếu các mục "phổ biến nhất" có cùng số lượng cao nhất> 1, kết quả phải là cái sớm nhất).

print most_common(['goose', 'duck', 'duck', 'goose'])
5 Chỉ các nhóm theo mục (thông qua
print most_common(['goose', 'duck', 'duck', 'goose'])
6). Hàm phụ trợ, được gọi là một lần mỗi nhóm trong quá trình tính toán
print most_common(['goose', 'duck', 'duck', 'goose'])
7, nhận và trong nội bộ giải nén một nhóm - một tuple với hai mục
print most_common(['goose', 'duck', 'duck', 'goose'])
8 trong đó các mục của Iterable cũng là các bộ dữ liệu hai mục,
print most_common(['goose', 'duck', 'duck', 'goose'])
9 [[các mục của
print most_common(['goose', 'duck', 'duck', 'goose'])
4]].

Sau đó, chức năng phụ trợ sử dụng một vòng lặp để xác định cả số lượng các mục nhập trong ITable của nhóm và chỉ mục gốc tối thiểu; Nó trả về những người như kết hợp "Khóa chất lượng", với chỉ số tối thiểu được thay đổi để hoạt động

print most_common(['goose', 'duck', 'duck', 'goose'])
7 sẽ xem xét "tốt hơn" những mục xảy ra trước đó trong danh sách ban đầu.

Mã này có thể đơn giản hơn nhiều nếu nó lo lắng ít hơn một chút về các vấn đề lớn về thời gian và không gian, ví dụ ....:

def most_common(L):
  groups = itertools.groupby(sorted(L))
  def _auxfun((item, iterable)):
    return len(list(iterable)), -L.index(item)
  return max(groups, key=_auxfun)[0]

cùng một ý tưởng cơ bản, chỉ thể hiện đơn giản và nhỏ gọn hơn ... nhưng, than ôi, một không gian phụ O (n) bổ sung (để thể hiện thời gian của các nhóm) và thời gian O (n bình phương) (để có được

SL: [('duck', 1), ('duck', 2), ('goose', 0), ('goose', 3)]
item 'duck', count 2, minind 1
item 'goose', count 2, minind 0
goose
2 của mỗi mục ). Mặc dù tối ưu hóa sớm là gốc rễ của tất cả các điều ác trong lập trình, nhưng cố tình chọn cách tiếp cận O (n bình phương) khi có sẵn một O (n log n), có sẵn quá nhiều so với hạt của khả năng mở rộng!-)

Cuối cùng, đối với những người thích "oneliners" với sự rõ ràng và hiệu suất, phiên bản 1 liner thưởng với tên được tạo ra phù hợp :-).

from itertools import groupby as g
def most_common_oneliner(L):
  return max(g(sorted(L)), key=lambda(x, v):(len(list(v)),-L.index(x)))[0]


Trong bài viết này, chúng ta sẽ xem làm thế nào để tìm ra yếu tố phổ biến nhất trong một danh sách nhất định. Nói cách khác, yếu tố có tần số cao nhất.

Với tối đa và đếm

Chúng tôi áp dụng lý do tại sao hàm thiết lập để có được các yếu tố duy nhất của danh sách và sau đó giữ tài khoản của từng yếu tố trong danh sách. Cuối cùng áp dụng một hàm tối đa để có được phần tử có tần số cao nhất.

Thí dụ

& nbsp; bản demo trực tiếp

# Given list
listA = [45, 20, 11, 50, 17, 45, 50,13, 45]
print("Given List:\n",listA)
res = max(set(listA), key = listA.count)
print("Element with highest frequency:\n",res)

Đầu ra

Chạy mã trên cho chúng ta kết quả sau -

Given List:
[45, 20, 11, 50, 17, 45, 50, 13, 45]
Element with highest frequency:
45

Với quầy

Chúng tôi sử dụng chức năng truy cập từ các bộ sưu tập. Sau đó áp dụng chức năng phổ biến nhất để có được kết quả cuối cùng.

Thí dụ

& nbsp; bản demo trực tiếp

from collections import Counter
# Given list
listA = [45, 20, 11, 50, 17, 45, 50,13, 45]
print("Given List:\n",listA)
occurence_count = Counter(listA)
res=occurence_count.most_common(1)[0][0]
print("Element with highest frequency:\n",res)

Đầu ra

Chạy mã trên cho chúng ta kết quả sau -

Given List:
[45, 20, 11, 50, 17, 45, 50, 13, 45]
Element with highest frequency:
45

Với quầy

Chúng tôi sử dụng chức năng truy cập từ các bộ sưu tập. Sau đó áp dụng chức năng phổ biến nhất để có được kết quả cuối cùng.

Thí dụ

from statistics import mode
# Given list
listA = [45, 20, 11, 50, 17, 45, 50,13, 45]
print("Given List:\n",listA)
res=mode(listA)
print("Element with highest frequency:\n",res)

Đầu ra

Chạy mã trên cho chúng ta kết quả sau -

Given List:
[45, 20, 11, 50, 17, 45, 50, 13, 45]
Element with highest frequency:
45

Hướng dẫn python find most frequent string in list - python tìm chuỗi thường xuyên nhất trong danh sách

Cập nhật vào ngày 04 tháng 6 năm 2020 11:44:36

  • Câu hỏi và câu trả lời liên quan
  • Chương trình tìm tần số của yếu tố thường xuyên nhất trong Python
  • Tìm phần tử thường xuyên thứ hai trong mảng javascript
  • C# chương trình để tìm phần tử thường xuyên nhất
  • Tìm phần tử phổ biến nhất trong danh sách 2D trong Python
  • Chương trình Python cho các từ thường xuyên nhất trong danh sách chuỗi
  • Chương trình python để tìm ký tự thường xuyên nhất trong một chuỗi
  • Phần tử thường xuyên nhất trong một mảng trong C ++
  • Chương trình tìm hiểu chỉ số của yếu tố thường xuyên nhất trong một mảng được che giấu trong Python
  • Tìm ký tự thường xuyên thứ hai trong mảng - JavaScript
  • Tìm các từ K thường xuyên nhất từ ​​tập dữ liệu trong Python
  • Chương trình tìm tổng số cây con thường xuyên nhất của cây nhị phân trong Python
  • Viết một chương trình trong C ++ để tìm phần tử thường xuyên nhất trong một mảng số nguyên nhất định
  • Chương trình tìm ký tự thường xuyên thứ hai trong C ++
  • Tổng Subtree thường xuyên nhất trong C ++
  • Ký tự thường xuyên thứ hai trong chuỗi - javascript

Làm cách nào để tìm từ phổ biến nhất trong danh sách Python?

Cách tiếp cận :..
Nhập lớp bộ đếm từ mô -đun bộ sưu tập ..
Chia chuỗi thành danh sách bằng cách sử dụng split (), nó sẽ trả về danh sách các từ ..
Bây giờ chuyển danh sách vào thể hiện của lớp quầy ..
Hàm 'hầu hết phổ biến ()' bên trong bộ đếm sẽ trả về danh sách các từ thường xuyên nhất từ ​​danh sách và số lượng của nó ..

Làm cách nào để nhận được giá trị thường xuyên nhất trong Python?

Để tổng hợp số lần một phần tử hoặc số xuất hiện, hàm giá trị của python được sử dụng.Phương thức chế độ () sau đó có thể được sử dụng để có được phần tử thường xảy ra nhất.The mode() method can then be used to get the most often occurring element.

Làm thế nào để bạn tìm thấy yếu tố phổ biến trong danh sách Python?

Phương pháp 2: Sử dụng thuộc tính Giao lộ của Set Chuyển đổi danh sách thành được đặt bằng cách chuyển đổi.Sử dụng chức năng giao nhau để kiểm tra xem cả hai bộ có bất kỳ yếu tố chung nào không.Nếu chúng có nhiều yếu tố chung, thì hãy in giao điểm của cả hai bộ.Using Set's intersection property Convert the list to set by conversion. Use the intersection function to check if both sets have any elements in common. If they have many elements in common, then print the intersection of both sets.

Làm thế nào để bạn tìm thấy tần số tối đa của một phần tử trong danh sách Python?

Python |Tìm tần suất của yếu tố lớn nhất trong danh sách.....
Tạo một số sao cho tần số của mỗi chữ số là chữ số theo tần số trong số đã cho.....
Tiền tố độ dài tối đa sao cho tần số của mỗi ký tự là số lượng ký tự tối đa có tần số tối thiểu ..