程序必须按字母顺序打印8个元素中的最后一个名称。
名称/单词可以通过代码以任何方式输入。
我想我应该在这里使用列表和in range()
。我有一个想法是将输入名称的第一个/第二个/第三个/ ...字母与前一个字母进行比较,然后将其放在列表的末尾或前一个的前面(取决于比较),然后重复下一个名称。最后,程序将打印列表的最后一个成员。
答案 0 :(得分:8)
默认情况下,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
如果您希望将其与大写字母无关,请务必先在str.lower()
上致电word
:
sentence = [word.lower() for word in sentence] # do this before running any of the above algorithms
答案 1 :(得分:3)
使用sort()
方法。
strings = ['c', 'b', 'a']
strings.sort()
print strings
输出将是,
['a', 'b', 'c']
如果您想要最后一个,可以使用max()
方法。
答案 2 :(得分:3)
如前一个答案中所述,字符串比较默认是词法,因此可以使用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
答案 3 :(得分: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']
答案 4 :(得分:1)
我会这样做。
定义字符串:为了论证,我们假设字符串已经预定义。
sentence = "This is the sentence that I need sorted"
使用split()
方法: split()
方法返回&#34;字词列表&#34;来自sentence
字符串。我使用术语&#34; word&#34;由于该方法没有&#34; word&#34;的概念,因此它只是将sentence
字符串分解为列表,方法是将其解析为由空格分隔的字符,并将这些字符作为列表中的离散项输出。此列表尚未按字母顺序排列。
split_sentence = sentence.split()
使用sorted
函数:已排序的函数返回按字母顺序排列的split_sentence
列表版本。
sorted_sentence = sorted(split_sentence)
打印列表中的最后一个元素:
print(sorted_sentence[-1])
答案 5 :(得分:0)
在python中,方法sort()按字母顺序对所有字符串进行排序,以便您可以使用该函数。
您可以列出所有单词,然后:
listName.sort()
这将产生按字母顺序排序的列表。
答案 6 :(得分:0)
只需使用以下内容:
max(sentence.lower().split())