python - 更改定义模式的字符串(Python)
问题描述
学习 Python,遇到了一个要求很高的初学者练习。
假设您有一个由“;”分隔的字符“块”组成的字符串。一个例子是:
cdk;2(c)3(i)s;c
你必须在旧字符串的基础上返回一个新字符串,但要按照一定的模式(这也是一个字符串),例如:
C?*
这种模式意味着每个块必须以'c'开头,'?' 字符必须由其他字母切换,最后是“*”由任意数量的字母切换。
因此,当应用模式时,您会返回如下内容:
cdk;cciiis
另一个例子:
字符串:2(a)bxaxb;ab
模式:a?*b
结果:aabxaxb
我非常粗暴的尝试导致了这个:
def switch(string,pattern):
d = []
for v in range(0,string):
r = float("inf")
for m in range (0,pattern):
if pattern[m] == string[v]:
d.append(pattern[m])
elif string[m]==';':
d.append(pattern[m])
elif (pattern[m]=='?' & Character.isLetter(string.charAt(v))):
d.append(pattern[m])
return d
提示?
解决方案
推荐阅读
- c++ - 在 C 或 C++ 中从 X11 合成 WM 请求图像
- javascript - 通过函数确定负责函数调用的元素 ID。没有jQuery
- javascript - 为一个元素指定多个最大宽度值
- python-3.x - 如何为本地文件设置 X-Frame-Options
- python - 配置 Tkinter 消息以在单独的行上显示元组
- r - 如何在连接之前识别两个数据帧之间的不匹配 ID?
- javascript - 将 Fetch 与 Google Places API 结合使用
- wordpress - 请求 /jwt-auth/v1/token 说“用户名字段为空”
- c# - Dotnet Core API - 获取控制器方法的 URL
- excel - 根据单元格值更改调用宏,但公式保持不变