Python输入一组字符串,包含数字英文中文,并将中文英文和数字分别分类存放到列表中输出 示例: 输入:‘123你我他abc’ 输出:[1,2,3] ,['你','我','他'],['a','b','c']
时间: 2023-12-23 16:06:33 浏览: 172
好的,我可以帮你解决这个问题。你可以使用 Python 中的正则表达式模块 re 来实现。以下是代码示例:
```python
import re
input_str = '123你我他abc'
# 匹配数字
num_list = re.findall('\d', input_str)
# 匹配中文
cn_list = re.findall('[\u4e00-\u9fa5]', input_str)
# 匹配英文
en_list = re.findall('[a-zA-Z]', input_str)
print(num_list, cn_list, en_list)
```
输出结果为:
```
['1', '2', '3'] ['你', '我', '他'] ['a', 'b', 'c']
```
这样,你就可以将输入的字符串中的数字、中文、英文分别存储到不同的列表中,方便后续操作。
相关问题
基于python写已知一个列表中存放的是一些学生的姓名,另外一个列表存放的是学生对应的考试成绩。两个列表长度相同。要求,把姓名和对应的成绩进行组合,形成一个列表。该列表包含一个嵌套列表,每个子列都是姓名和对应的成绩。最后输出形成的新列表。 【输入形式】 分两行输入,第一行输入姓名,按照字符串的方式输入,多个姓名之间用逗号分隔。第二行输入成绩,包含方括号,元素之间用英文逗号分隔。 【输出形式】 直接用print输出新的列表。
C知道:好的,根据您的要求,我会回答您的问题。对于您的第一个问题,可以使用以下代码实现:
names = input().split(",")
scores = eval(input())
result = [[names[i], scores[i]] for i in range(len(names))]
print(result)
输入示例:
张三,李四,王五
[90, 85, 95]
输出示例:
[['张三', 90], ['李四', 85], ['王五', 95]]
已知 char s[80],t1[80],t2[80],对数组s输入任意长度(不超过79)的字符串,然后将其中的字母字符和数字字符分别以字符串的形式分别存放到t1和t2中,并分别输出三个数组中的字符串
首先,我们需要遍历字符串`s`,判断每个字符是否是字母或数字。可以使用ASCII码来进行区分,字母的ASCII码范围通常在65('A')到90 ('Z')和97 ('a') 到 122 ('z')之间,数字的ASCII码范围是48 ('0') 到 57 ('9')。以下是步骤:
1. 初始化两个指针 `i` 和 `j` 分别指向 `s`、`t1` 和 `t2` 的开头。
2. 使用循环遍历字符串 `s`,直到遇到空字符 '\0' 或达到字符串长度限制(79)。
3. 对于每个字符 `c`,检查其ASCII码:
- 如果 `c` 是字母(ASCII码在字母范围内),将其添加到 `t1` 中并移动 `t1` 指针。
- 否则(即 `c` 是数字),将其添加到 `t2` 中并移动 `t2` 指针。
4. 在循环结束后,确保 `t1` 和 `t2` 都已到达各自字符串的结尾,如果没有,则用空字符填充剩余位置。
5. 输出字符串 `s`、`t1` 和 `t2`。
下面是一个简单的示例伪代码形式:
```python
for i in range(len(s)):
if 'A' <= s[i] <= 'Z' or 'a' <= s[i] <= 'z':
t1[j++] = s[i]
elif '0' <= s[i] <= '9':
t2[k++] = s[i]
# 输出字符串
print("Original string:", s)
print("Alphabetic part:", t1[:j])
print("Numeric part:", t2[:k])
```
请注意,在实际编程语言中,需要处理边界的异常情况以及转换为字符串以便输出。例如,在C++或Python中,你会使用`std::string`而不是直接拼接字符,但在演示这个过程时,上述伪代码应该能提供思路。
阅读全文