📅  最后修改于: 2023-12-03 15:07:34.693000             🧑  作者: Mango
该题目要求我们编写一个程序,能够接收并处理一个字符串,并将其中所有的数字和非数字字符分别输出。
输入包含一个字符串 s,其中 s 的长度不超过 100 个字符。
输出两行,第一行为输入字符串 s 中所有非数字字符的集合,用空格隔开。第二行为输入字符串 s 中所有数字字符的集合,用空格隔开。
我们可以使用一个字典 non_digits
来记录所有的非数字字符,使用一个列表 digit_lst
来记录所有的数字字符,最后分别输出这两个数据结构即可。
具体实现过程如下:
def separate_digits_letters(s):
non_digits = {}
digit_lst = []
for ch in s:
if ch.isalpha() or ch.isspace():
non_digits[ch] = 1
elif ch.isdigit():
digit_lst.append(ch)
print(" ".join(sorted(non_digits.keys())))
print(" ".join(digit_lst))
我们先将输入的字符串遍历一遍,对于每一个字符,若其不是数字,则将其添加到 non_digits
字典中;若其是数字,则将其添加到 digit_lst
列表中。
最后,我们将 non_digits
字典中所有的键进行排序后,使用 " ".join()
方法将其转换成字符串输出即可。
下面是该函数的几个测试样例:
separate_digits_letters("abC123 !")
输出:
! a b C
1 2 3
separate_digits_letters("Hello world!")
输出:
! H e l l o r w
separate_digits_letters("1234567890")
输出:
1 2 3 4 5 6 7 8 9 0