python - 拆分给定字符串中的数字、字符串、特殊字符
问题描述
给定一个由字母、数字和特殊字符组成的字符串 S。您需要编写一个程序将字符串拆分为三个不同的字符串 S1、S2 和 S3,这样字符串 S1 将包含 S 中存在的所有字母,字符串 S2 将包含 S 中存在的所有数字,并且 S3 将包含所有特殊的S 中出现的字符。字符串 S1、S2 和 S3 的字符顺序应与它们在输入中出现的顺序相同。
输入:输入的第一行包含一个整数 T,它表示测试用例的数量。每个测试用例的第一行包含一个由字母、数字和特殊字符组成的字符串 S。输出:对于每个测试用例,在第一行打印包含 S 的所有字母的字符串 S1。在第二行打印包含所有数字的字符串 S2。在第三行打印字符串 S3,其中包含 S 中存在的所有特殊字符。
约束:1<=T<=100 3<=长度(S)<=1000
示例:输入:2 geeks01for02geeks03!!!**Docoding123456789everyday## 输出:geeksforgeeks 010203 !!! Docodingeveryday 123456789 **## 我的代码:
enter code here
t=int(input())
a=[]
n=[]
st=[]
for _ in range(t):
s=list(input())
for i in s:
if i.isalpha():
a.append(i)
elif i.isdigit():
n.append(i)
elif not i.isalnum():
st.append(i)
for i in a:
print(i,end='')
print('')
for i in n:
print(i,end='')
print('')
for i in s:
print(i,end='')
print('')
我的代码是分隔字母、数字但不是特殊字符任何人都可以告诉我我的 python 代码有什么问题
解决方案
在最后一个打印特殊字符的 for 循环中,您将其循环到错误的列表中。将其更改为
for i in st:
print(i)
推荐阅读
- javascript - 在类中声明对象类型
- sql - 出现错误:无法将“System.Int64”类型的对象转换为“System.String”类型
- r - 仅第一次使用 for 循环进行地理编码,并放入数据帧(在 R 中)
- php - 在每个函数中使用 foreach 雄辩
- javascript - 提交包含多个事件的 AJAX 表单
- jsonschema - SpringFox 为 HATEOAS 链接生成的 JSON Schema 中 xml 键的作用是什么?
- java - 按日期属性排序对象列表
- python - 如何在 tkinter python 中动态添加多行文本?
- swift - 观看操作系统:BatteryState 的 Swift KVO 不起作用
- html - Angular:将函数从常量绑定到html