web-dev-qa-db-ja.com

Python-単語をアルファベット順に配置する

プログラムは、8つの要素のうち最後の名前をアルファベット順に出力する必要があります。名前/単語は、コードを介して任意の方法で入力できます。ここではリストとin range()を使用するべきだと思います。私は入力名の最初/第2 /第3/...の文字を前の文字と比較し、それをリストの最後または前の前に置きます(比較に応じて) )、次の名前についても同じように繰り返します。最後に、プログラムはリストの最後のメンバーを出力します。

8
CrashZer0

Pythonの文字列比較はデフォルトで字句的であるため、maxを呼び出してそれを回避できるはずです。

_In [15]: sentence
Out[15]: ['this', 'is', 'a', 'sentence']
In [16]: max(sentence)
Out[16]: 'this'
_

もちろん、これを手動で行いたい場合:

_In [16]: sentence
Out[16]: ['this', 'is', 'a', 'sentence']

In [17]: answer = ''

In [18]: for Word in sentence:
   ....:     if Word > answer:
   ....:         answer = Word
   ....:         

In [19]: print answer
this
_

または、文を並べ替えることができます。

_In [20]: sentence
Out[20]: ['this', 'is', 'a', 'sentence']

In [21]: sorted(sentence)[-1]
Out[21]: 'this'
_

または、逆順に並べ替えます。

_In [25]: sentence
Out[25]: ['this', 'is', 'a', 'sentence']

In [26]: sorted(sentence, reverse=True)[0]
Out[26]: 'this'
_

しかし、完全に手動で操作したい場合(これは非常に困難です):

_def compare(s1, s2):
    for i,j in Zip(s1, s2):
        if ord(i)<ord(j):
            return -1
        Elif ord(i)>ord(j):
            return 1
    if len(s1)<len(s2):
        return -1
    Elif len(s1)>len(s2):
        return 1
    else return 0

answer = sentence[0]
for Word in sentence[1:]:
    if compare(answer, Word) == -1:
        answer = Word

# answer now contains the biggest Word in your sentence
_

大文字と小文字を区別しない場合は、最初にWordsでstr.lower()を呼び出してください。

_sentence = [Word.lower() for Word in sentence] # do this before running any of the above algorithms
_
8
inspectorG4dget

前の回答で述べたように、文字列比較はデフォルトで字句的であるため、min()およびmax()を使用できます。大文字と小文字の両方の単語を処理するには、key=str.lowerを指定できます。例えば:

s=['This', 'used', 'to', 'be', 'a', 'Whopping', 'Great', 'sentence']
print min(s), min(s, key=str.lower)
# Great a

print max(s), max(s, key=str.lower)
# used Whopping

sort()メソッドを使用します。

_strings = ['c', 'b', 'a']
strings.sort()
print strings
_

出力は、

_['a', 'b', 'c']
_

最後が必要な場合は、max()メソッドを使用できます。

3
adarsh

これが私がやる方法です。

  1. 文字列を定義する:引数として、文字列がすでに定義済みであるとしましょう。

    _sentence = "This is the sentence that I need sorted"
    _
  2. split()メソッドを使用:split()メソッドは、sentence文字列から「単語」のリストを返します。メソッドには「単語」の概念がないため、ここでは「単語」という用語を大まかに使用します。これは、空白で区切られた文字を解析してsentence文字列をリストに分離し、これらの文字を個別の項目として出力するだけですリスト。このリストはまだアルファベット順ではありません。

    _split_sentence = sentence.split()
    _
  3. sorted関数を使用:ソートされた関数は、アルファベット順のバージョンの_split_sentence_リストを返します。

    _ sorted_sentence = sorted(split_sentence)
    _
  4. リストの最後の要素を印刷:

    _print(sorted_sentence[-1])
    _
1
seeker

大文字の単語と小文字の単語が混在している場合は、次のようにすることができます。

from string import capwords     

words = ['bear', 'Apple', 'Zebra','horse']

words.sort(key = lambda k : k.lower())

answer = words[-1]

結果:

>>> answer
'Zebra'
>>> words
['Apple', 'bear', 'horse', 'Zebra']
1
Akavall

以下を使用してください:

max(sentence.lower().split())
0
Shubham Kundu

pythonでは、sort()メソッドはすべての文字列をアルファベット順にソートするので、その関数を使用できます。

すべての単語のリストを作成してから、次の操作を実行できます。

  listName.sort()

これは、アルファベット順にソートされたリストになります。

0
Fyre