0

私はPythonにかなり慣れていませんが、自分が持っているデータを希望どおりに表示するのにまだ問題があります。文字列で最も頻繁に使用される文字を決定するこのコードがあります。ただし、どのように印刷するかは次のとおり('A', 3)です。

stringToData = raw_input("Please enter your string: ")
import collections
print (collections.Counter(stringToData).most_common(1)[0])

このコードを次のようなものに操作する方法についての洞察が欲しかっただけです。

print "In your string, there are: %s vowels and %s consonants." % (vowels, cons)

明らかに、「あなたの文字列で、最も頻繁に使用される文字は (文字) で、(数) 回発生した」となります。

私は Python 2.7 を使用しており、 を使用してみましたpprintが、それを既存のコードに組み込む方法がよくわかりませんでした。

編集:基本的に、私が求めているのは、文字列で最も頻繁に使用される文字を見つけて、「あなたの文字列では、最も頻繁に使用される文字は(文字)であり、(数)回発生しました。 "

4

2 に答える 2

4

これがあなたが望むものかどうかはわかりませんが、これは最も頻繁な文字とそれに続く出現回数を出力します:

import collections

char, num = collections.Counter(stringToData).most_common(1)[0]
print "In your string, the most frequent character is %s, which occurred %d times" % (char, num)

これは、最も頻繁に出現する文字と出現回数のタプルを返します。

collections.Counter(stringToData).most_common(1)[0]
#output: for example: ('f', 5)

例:

stringToData = "aaa bbb ffffffff eeeee"
char, num = collections.Counter(stringToData).most_common(1)[0]
print "In your string, the most frequent character is %s, which occurred %d times" % (char, num)

出力は次のとおりです。

In your string, the most frequent character is f, which occurred 8 times
于 2013-11-08T00:59:29.497 に答える
1

ここでやることは本当に何もありませんpprint。そのモジュールは、コレクションの出力方法のカスタマイズに関するものです。サブオブジェクトのインデント、辞書キーまたはセット要素の表示順序の制御などです。コレクションを出力しようとしているわけではなく、コレクションに関する情報を出力するだけです。 .

最初にしたいことは、印刷ステートメントごとにコレクションを再構築するのではなく、コレクションを維持することです。

counter = collections.Counter(stringToData)

次に、そこから必要なデータを取得する方法を理解する必要があります。値の 1 つのペアを見つける方法は既に知っています。

letter, count = counter.most_common(1)[0]

あなたが尋ねたもう一つのことは、母音と子音の数です。そのためには、次のようにする必要があります。

all_vowel = set('aeiouyAEIOUY')
all_consonants = set(string.ascii_letters) - all_vowels
vowels = sum(count for letter, count in counter.iteritems()
             if letter in all_vowels)
cons = sum(count for letter, count in counter.iteritems()
           if letter in all_consonants)

そして、すでに知っている何らかのフォーマットを使用して、それらを印刷する必要があります。

print "In your string, there are: %s vowels and %s consonants." % (vowels, cons)
print ("In your string, the most frequent character is %s, which occurred %s times."
       % (letter, count))
于 2013-11-08T00:58:55.577 に答える