用python给定一个包含若干字符串的列表,要求根据字符串的长度将其分组,并统计每个长度下字符串的数量。最后返回一个字典,键为字符串长度,值为该长度下字符串的列表。如果两个字符串长度相同,则它们在结果字典中的顺序应与原列表中的顺序一致。
时间: 2024-10-15 07:27:33 浏览: 37
你可以使用Python的内置函数`collections.defaultdict`和`len()`来实现这个功能。首先创建一个默认字典,它的键是字符串长度,初始值是一个空列表。然后遍历输入的字符串列表,对于每个字符串,获取其长度并更新相应长度的列表。下面是具体的代码示例:
```python
from collections import defaultdict
def group_strings_by_length(strings):
length_dict = defaultdict(list)
for string in strings:
length_dict[len(string)].append(string)
return dict(length_dict)
# 测试示例
input_list = ["apple", "banana", "cat", "dog", "elephant"]
result = group_strings_by_length(input_list)
print(result) # 输出:{5: ['apple', 'banana'], 3: ['cat', 'dog'], 8: ['elephant']}
```
在这个例子中,`group_strings_by_length`函数接收一个字符串列表,然后返回一个新的字典,其中键是字符串的长度,值是长度相同的字符串列表。如果列表中有多个长度相同的字符串,它们会按照原有的顺序出现在结果中。
阅读全文