2016-04-10 8 views
0

こんにちは、私はその中にテキストを含むファイルを取り、最も一般的な単語をファイルに返します。現在のコードは次のようになります。最終出力で望ましくない '['と ']'を取り除いてください

import collections 

def approximate_song(filename): 
    text = open(filename).read() 
    counts = collections.Counter(text.lower().split()) 

return [elem for elem, _ in sorted(counts.most_common(), key=lambda 
            x: (-x[1], x[0]))[:1]] 

これは最も一般的な単語を返します。ただし、 'word here'という形式で返す必要があります。 (角括弧ではなく、ただの中で)。

ご協力いただければ幸いです。

+2

最初の要素にアクセスするだけですか? '[elem ...] [0]'はあなたが必要なものです。 –

+2

'counts.most_common(1)[0] [0]'だけではないのはなぜですか? (おそらくリストが空の場合は 'IndexError'をキャッチします)。 – mgilson

+0

リストを返します。文字列だけが必要な場合は、最初の要素にアクセスします。例えば。、。 LST [0]は@akshatのように.. – AceLearn

答えて

1

Pythonでは、リストは[]で表されます。たとえば、[1,2,3,4,5]がリストです。個々の要素にアクセスするために、インデックスを使用します。したがって、a = [1,2,3,4,5]がリストの場合、最初の要素はa[0]で、2番目の要素はa[1]などでアクセスできます。

コードでは要素の代わりにリスト全体が返されます。リストの要素を[0]に戻すことを単純に変更すると、目的が達成されます。

import collections 

def approximate_song(filename): 
    text = open(filename).read() 
    counts = collections.Counter(text.lower().split()) 

    return [elem for elem, _ in sorted(counts.most_common(), key=lambda 
            x: (-x[1], x[0]))[:1]][0] 

print(approximate_song('README.txt')) 
+0

あなたのコードが動作する、しかし、それは入力に失敗します。 「バーブラ・ストライサンド OO-OO whooo-OO whooo-OOのOO-OO OO-OO whooo-OO whooo-OOのOO-OO OO- oo who-oo-oo whooo-oo oo-oo Barbra Streisand Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo -OO-OO whooo-OOのOO-OO OO-OO whooo-OO whooo-OO バーバラストライサンド OO-OO whooo-OO whooo-OOのOO-OO OO-OO whooo-OO whooo-oo oo-oo Oo-oo who-oo-oo whooo-oo –

+0

Barbra Streisand Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo -oo-oo whooo-oo oo-oo Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo who-oo-oo whooo -OO バーバラストライサンドOO-OO whooo-OO whooo-OOのOO-OO OO-OO whooo-OO whooo-OOのOO-OO OO-OO whooo-OO whooo-OO OO- OO OO-OO whooo-OO whooo-OO バーバラストライサンドOO-OO OO-OO OO-OO whooo-OO OO-OO whooo-OO whooo-OOのOO-OO OO-OO OO-ウーオーーーーーーーーーーーーーーー OO-OO whooo-OO whooo-OO –

+0

バーブラ・ストライサンド OO-OO whooo-OO OO-OO whooo-OO OO-OO whooo-OO OO-OO whooo-OO バーブラ・ストライサンド OO-OO人-oo-oo whooo-oo oo-oo Oo-oo who-oo-oo whooo-oo oo-oo Oo-oo-oo-oo-whoo-oo oo-oo「 –

関連する問題