-1

文字列を入力してください: Python と Perl はプログラミング言語です

Python
Perl
and
are 
programming
languages

入力を分割したいのですが、大文字の単語が一番上になります。私は 2 つのリストを使用することを考えています。if ステートメントを使用して単語を特定のリストに配置しようとしています。いくつかのアイデアを提案してください!

ありがとう

4

2 に答える 2

4

次のようになるため、出力例は間違っています。

Perl
Python
and
are
languages
programming

最初に大文字で並べ替えると、最初に来るため、Perl上記の結果になります。さらに、大文字が最初に来るので、あなたは簡単に行うことができますPythone

print "\n".join(sorted(a.split()))

望ましい結果を得るために。

編集:質問を読み直した後、私はこの修正/出力を思いついた:

print "\n".join(sorted(a.split(), key=lambda x: x >= 'a'))

出力:

Python
Perl
and
are
programming
languages

説明: Pythonの並べ替え関数は安定しています。つまり、同じ比較キーを持っている場合、要素の順序は相互に関連して保持されます。key関数は、(小文字で始まる任意の文字列)True以上の値を割り当てます。それ以外の場合は。はより小さいと比較されるため、大文字または小文字の単語の順序を変更せずに、大文字はすべて前に移動します。'a'FalseFalseTrue

于 2012-06-22T07:29:11.047 に答える
1

宿題の場合は、「宿題」というタグを付けてください。とにかく、2 つのリストを使用するというアイデアは悪くありません。

  1. 2 つのリストを空のリストに初期化します。
  2. 文字列のメソッドを使用して入力文を分割し.split()、単語を取得します。
  3. ループ内で分割式を直接使用してfor、抽出された単語を処理します。
  4. wordが文字列変数の場合、はword[0]その最初の文字です。それ以下の場合'Z'は大文字の単語であり、指名手配リストに追加する必要があります。
  5. '\n'.join(lst)単語のリストから複数行の文字列を取得するために使用します。
于 2012-06-22T07:32:18.413 に答える