首页 > 解决方案 > 拆分给定字符串中的数字、字符串、特殊字符

问题描述

给定一个由字母、数字和特殊字符组成的字符串 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 代码有什么问题

标签: pythonstringspecial-characters

解决方案


在最后一个打印特殊字符的 for 循环中,您将其循环到错误的列表中。将其更改为

for i in st:
   print(i)

推荐阅读