一个列表中存在若干数值(整数和实数)和字母,每个元素都是一个字符串类型,如lst = ['2','3.5','rg','6.7','mnl'],将列表中的数值和字母分别放在两个列表中。再对于存放字母的列表,使用字典,统计每个字符串长度并归类,按照字符串长度排序后输出字典
时间: 2023-12-20 09:07:50 浏览: 72
使用汇编语言,输入字符串,统计其总字符数、字母数、数字数、其他数并输出
好的,根据您的要求,我来给您写一段Python代码实现这个功能:
```python
lst = ['2', '3.5', 'rg', '6.7', 'mnl']
num_lst = []
str_lst = []
for elem in lst:
if elem.isdigit() or '.' in elem:
num_lst.append(elem)
else:
str_lst.append(elem)
str_dict = {}
for elem in str_lst:
length = len(elem)
if length not in str_dict:
str_dict[length] = []
str_dict[length].append(elem)
sorted_dict = dict(sorted(str_dict.items()))
print("数值列表:", num_lst)
print("字符串列表:", str_lst)
print("按字符串长度排序的字典:", sorted_dict)
```
运行结果如下:
```
数值列表: ['2', '3.5', '6.7']
字符串列表: ['rg', 'mnl']
按字符串长度排序的字典: {2: ['rg'], 3: ['mnl']}
```
代码解释如下:
首先,我们遍历原始列表 `lst`,将其中的数值和字母分别存放到 `num_lst` 和 `str_lst` 两个列表中,其中判断字符串是否为数值采用了 `isdigit()` 方法和字符串中是否包含小数点的方式。
接着,我们遍历存放字母的列表 `str_lst`,统计每个字符串的长度,并将其归类到 `str_dict` 字典中。对于每个新的字符串长度,我们需要先判断其是否已经存在于字典中,如果不存在则需要初始化一个空列表;之后将当前字符串加入到对应长度的列表中。
最后,我们对字典 `str_dict` 按照键(即字符串长度)进行排序,并将其转化为新的 `sorted_dict` 字典。最终,我们将三个结果打印输出即可。
阅读全文