python-求单词长度并根据长度排序
时间: 2023-07-26 08:23:06 浏览: 287
可以使用Python的内置函数sorted()和lambda表达式来完成此任务。
假设有一个单词列表words,可以使用以下代码来求出单词长度并根据长度排序:
```python
words = ['apple', 'banana', 'orange', 'pear', 'grape']
word_lengths = [(word, len(word)) for word in words] # 求出单词长度
sorted_word_lengths = sorted(word_lengths, key=lambda x: x[1]) # 根据长度排序
for word, length in sorted_word_lengths:
print(word, length)
```
输出结果如下:
```
pear 4
apple 5
grape 5
banana 6
orange 6
```
代码解释:
- 第一行定义了一个单词列表words。
- 第二行使用列表推导式求出每个单词的长度,并返回一个元组列表,元组中第一个元素为单词,第二个元素为单词长度。
- 第三行使用sorted()函数对元组列表进行排序,key参数传入lambda表达式,表示按照元组中第二个元素(即单词长度)进行排序。
- 最后使用for循环遍历排序后的元组列表,输出单词和长度。
相关问题
jmu-python-求单词长度 分数 10 全屏浏览题目 作者 linli 单位 集美大学 输入n个单词,计算每个单词长度。对单词长度排序,分行输出单词长度及其单词。 输入格式: 行1:单词个数n 分行输入n个单词 输出格式: 分行输出单词长度及其单词。(单词长度,单词)用元组表示 输入样例: 5 python list set 996 tuple 输出样例: (3, '996') (3, 'set') (4, 'list') (5, 'tuple') (6, 'python')
好的,你的问题是关于编程的。下面是问题的具体内容:
输入n个单词,计算每个单词长度。对单词长度排序,分行输出单词长度及其单词。请用元组表示。
输入格式:
第一行,一个整数n(表示单词的个数)
接下来的n行,每行一个单词(不包含空格等特殊字符)
输出格式:
按单词长度升序排列,每行一个单词及其长度,用元组表示
样例输入:
5
python
list
set
996
tuple
样例输出:
(3, '996')
(3, 'set')
(4, 'list')
(5, 'tuple')
(6, 'python')
请问你有什么思路吗?
python-统计一段文字中的单词个数并按单词的字母顺序排序后输出
首先需要解码字符串,可以使用bytes.decode()方法将其转换为Unicode编码的字符串。然后使用split()方法将字符串分割为单词列表,并通过len()函数获取每个单词的长度。最后使用sorted()函数对单词按照长度进行排序并输出。
Python代码如下:
s = b'python-\xe7\xbb\x9f\xe8\xae\xa1\xe4\xb8\x80\xe6\xae\xb5\xe6\x96\x87\xe5\xad\x97\xe4\xb8\xad\xe7\x9a\x84\xe5\x8d\x95\xe8\xaf\x8d\xe4\xb8\xaa\xe6\x95\xb0\xe5\xb9\xb6\xe6\x8c\x89\xe5\x8d\x95\xe8\xaf\x8d\xe7\x9a\x84\xe5\xad\x97\xe6\xaf\x8d\xe9\xa1\xba\xe5\xba\x8f\xe6\x8e\x92\xe5\xba\x8f\xe5\x90\x8e\xe8\xbe\x93\xe5\x87\xba'
s = s.decode()
words = s.split()
word_lengths = [len(word) for word in words]
sorted_words = sorted(words, key=lambda w: len(w))
print(sorted_words)
输出:
['python-统计一段文字中的单词个数并按单词的字母顺序排序后输出']
阅读全文