从本实例学到什么
列表排序方法sort()的key参数的用法。
lambda函数用法示例。
按多个字段排序的做法。
实例程序
题目描述
求单词长度
输入n个单词,计算每个单词长度。对单词长度排序,分行输出单词长度及其单词。
输入格式:
行1:单词个数n
分行输入n个单词
输出格式:
分行输出单词长度及其单词。(单词长度,单词)用元组表示。长度相同的话,按单词字典序从小到大排序。
输入样例:
5
python
list
set
996
tuple
输出样例:
(3, ‘996’)
(3, ‘set’)
(4, ‘list’)
(5, ‘tuple’)
(6, ‘python’)
来源
PTA网站
上述题目的参考答案
n = int(input())
words = [input() for i in range(n)] #读入n个单词。每次读一行。
len_words = [(len(word), word) for word in words] #求出每个单词的长度
len_words.sort(key=lambda word:word[1]) #key参数的设值使得列表按单词字典序排序
len_words.sort(key=lambda word:word[0]) #key参数的设值使得列表按单词长度排序
for length, word in len_words:
print("(%d, '%s')"%(length, word))