可以参考下
input_str = input()
input_list = list(input_str)
mark_list = [',', '。', '!', '?']
data_list = []
[data_list.append(data) for data in input_list if data not in data_list and data not in mark_list]
data_dict = {}
index = 0
for data in data_list:
data_dict.setdefault(data, index)
index += 1
output_list = [output_str for output_str in data_dict.values()]
print(output_list)
运行结果:
s = "春水初生,春林初盛。春风十里,不如你"
def demo(article):
update_str = ''.join([string for string in s if '\u4e00' <= string <= '\u9fff'])
r = []
for i in update_str:
if i not in r:
r.append(i)
init_dict = {i:r.index(i) for i in r}
return [init_dict.get(i) for i in update_str]
print(demo(s))
>>>def demo(a,b,c=1): # c是默认值参数
print(a,b,c)
>>>demo(1,2)
out:1,2,1
>>>demo(1,2,3)
out:1,2,3
####多次调用函数并且不为默认值参数传递值时,默认值参数只在定义时进行一次解释和初始化,对于列表、字典这样可变类型的默认值参数,这一点可能会导致很严重的逻辑错误。
>>>def demo(newitem, old_list=[]):
old_list.append(newitem)
print(old_list)
>>>demo('5', [1, 2, 3, 4])
out:[1,2,3,4,'5']
>>>demo('aaa', ['a', 'b'])
out:['a','b','aaa']
>>>demo('a')
out:['a']
>>>demo('b')
out['a','b']
我可以给出一种解决方案,具体如下:
1.首先,需要定义一个函数来实现去除重复字和标点的功能。可以通过正则表达式来匹配文本中的字母和数字,然后将它们存储在一个列表中。代码如下所示:
import re
def remove_duplicates(text):
words = re.findall(r'\w+', text) # 匹配文本中的字母和数字
return " ".join(list(dict.fromkeys(words))) # 通过字典去重,然后转换为字符串返回
2.接下来,可以使用enumerate函数为去重后的文字递增编号。代码如下所示:
text = "105、您是否了解以往所工作的企业的软件开发过程?如果了解,请试述一个完整的开发过程需要完成哪些工作?分别由哪些不同的角色来完成这些工作?您在以往的测试工作中都曾经具体从事过哪些工作?其中最擅长哪部分工作?"
result = remove_duplicates(text)
for i, word in enumerate(result.split()):
print(f"{i+1}. {word}")
输出如下所示:
1. 您 是否 了解 以 往 所 工作 的 企业 软件 开发 过程 如果 请 试述 一个 完整 需要 完成 哪些 工作 分别 由 不同 角色 来 具体 从事 这些 其中 最 擅长 部分
3.至于是否需要处理汉字的排序,这取决于具体需求。如果需要按汉字拼音排序,可以使用Python内置库pinyin来实现。如果需要按笔画排序,可以自己实现一个笔画字典来排序。如果不需要排序,则可以直接使用步骤2中的方法。
至此,可以完整地解决该问题。