使用python按顺序检查子字符串

lmyy7pcs  于 2022-11-21  发布在  Python
关注(0)|答案(1)|浏览(123)

所以基本上这就是问题:我目前正在开发一个Blender Add-on,它是一个用于2D和3D动画的口形同步工具,例如,句子“I love pizza”是“a l v ˈpi ə tsə",这就是为什么我正在制作一个脚本,它将评估每个字符,寻找每个单词中的音素(好像有44个音素什么的)。但简单地说;假设您有string =“bcda”,我需要类似于 *b检测到,执行 * c检测到,执行 *d检测到,执行 *a检测到,执行 *d检测到,如果是string = abcd *a检测到,执行 *b检测到,执行 *c检测到,执行 *d检测到,但是无论我在python中做什么,我总是得到abcd,我需要连续的顺序!这甚至是最糟糕的,因为我尝试在c#中这样做,我确实成功了(我试过使用regex,text 1在text 2和.find)请帮助我
enter image description here
我试过使用.find,在text 2中使用text 1,甚至使用regex,它都能工作,但不是按顺序

bcs8qyzn

bcs8qyzn1#

你可以用一个forloop循环遍历字符串,再用一个switch语句,你也可以用一个音素字典和它们的排序函数。

aString = "bca"
"""
it got a bit convoluted but the lambda: print("contains a") really just allows you
to call a function (print) with specific attributes, if you wanted your own
function you probably wouldn't need the lambda.
"""
functions = {"a":lambda: print("contains a"),"b":lambda: print("contains b"),"c":lambda: print("contains c")}

for c in aString: # just loops through each letter and calls the according function found in the dictionary.
    functions[c]()

其产生:

contains b
contains c
contains a

相关问题