プログラムは、8つの要素のうち最後の名前をアルファベット順に出力する必要があります。名前/単語は、コードを介して任意の方法で入力できます。ここではリストとin range()
を使用するべきだと思います。私は入力名の最初/第2 /第3/...の文字を前の文字と比較し、それをリストの最後または前の前に置きます(比較に応じて) )、次の名前についても同じように繰り返します。最後に、プログラムはリストの最後のメンバーを出力します。
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
_
大文字と小文字を区別しない場合は、最初にWord
sでstr.lower()
を呼び出してください。
_sentence = [Word.lower() for Word in sentence] # do this before running any of the above algorithms
_
前の回答で述べたように、文字列比較はデフォルトで字句的であるため、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()
メソッドを使用できます。
これが私がやる方法です。
文字列を定義する:引数として、文字列がすでに定義済みであるとしましょう。
_sentence = "This is the sentence that I need sorted"
_
split()
メソッドを使用:split()
メソッドは、sentence
文字列から「単語」のリストを返します。メソッドには「単語」の概念がないため、ここでは「単語」という用語を大まかに使用します。これは、空白で区切られた文字を解析してsentence
文字列をリストに分離し、これらの文字を個別の項目として出力するだけですリスト。このリストはまだアルファベット順ではありません。
_split_sentence = sentence.split()
_
sorted
関数を使用:ソートされた関数は、アルファベット順のバージョンの_split_sentence
_リストを返します。
_ sorted_sentence = sorted(split_sentence)
_
リストの最後の要素を印刷:
_print(sorted_sentence[-1])
_
大文字の単語と小文字の単語が混在している場合は、次のようにすることができます。
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']
以下を使用してください:
max(sentence.lower().split())
pythonでは、sort()メソッドはすべての文字列をアルファベット順にソートするので、その関数を使用できます。
すべての単語のリストを作成してから、次の操作を実行できます。
listName.sort()
これは、アルファベット順にソートされたリストになります。