python 一个列表中存在若干数值(整数实数)和字母,每个元素都是一个字符串类型 如lst=['2','3','rg','6.7','mnl'],将列表中的数值和字母分别放在两个列表中(1)使用try.except解决(2)使用正则表达式解决(3)对于存放字母的列表,使用字典,统计每个字符串长度并归类,按照字符串长度排序后输出字典,写出以上三个题目的完整代码
时间: 2024-02-28 12:55:12 浏览: 52
py代码-输入一个包含若干自然数的列表,输出一个新列表,新列表中每个元素为原列表中 每个自然数的位数。例如输入[1,888,99,23456],输出[1,3,2,5]。
以下是三个题目的完整代码:
1. 使用try.except解决
```
lst = ['2', '3', 'rg', '6.7', 'mnl']
num_lst = []
char_lst = []
for item in lst:
try:
num_lst.append(float(item))
except ValueError:
char_lst.append(item)
print("数值列表:", num_lst)
print("字母列表:", char_lst)
```
2. 使用正则表达式解决
```
import re
lst = ['2', '3', 'rg', '6.7', 'mnl']
num_lst = []
char_lst = []
for item in lst:
if re.match(r'^-?\d+\.?\d*$', item):
num_lst.append(float(item))
else:
char_lst.append(item)
print("数值列表:", num_lst)
print("字母列表:", char_lst)
```
3. 对于存放字母的列表,使用字典,统计每个字符串长度并归类,按照字符串长度排序后输出字典
```
import re
lst = ['2', '3', 'rg', '6.7', 'mnl']
num_lst = []
char_lst = {}
for item in lst:
if re.match(r'^-?\d+\.?\d*$', item):
num_lst.append(float(item))
else:
if len(item) in char_lst:
char_lst[len(item)].append(item)
else:
char_lst[len(item)] = [item]
print("数值列表:", num_lst)
print("字母字典:", char_lst)
# 按照字符串长度排序输出字典
sorted_char_lst = dict(sorted(char_lst.items()))
print("排序后的字母字典:", sorted_char_lst)
```
阅读全文