python基础,请用基础方法解决

编写一个NextElem函数,它将一个elm元素和一个至少包含两个列表元素的列表作为参数。该函数返回列表list 中的下一个元素elm,如果elm是列表中的最后一个,则返回列表中的第一个元素。如果elm不在列表中,则返回None。例子:
NextElem ('a', ['a', 'b', 'c']))是'b'
NextElem ('c', ['a', 'b', 'c']是'a'
NextElem ('d', ['a', 'b', 'c'])是None

编写一个编码函数,它将文本(小写,不带重音)和一个包含所有小写字母和按特定顺序的标点符号(例如提供给您的order_alpha 和order2)的顺序列表作为参数,并返回密文,其中种子文本中的每个字符都被替换为订单列表中的下一项。
注意:请注意,由于列表功能,字符串被转换为列表。
ordre1=list("abcdefghijklmnopqrstuvwxyz ,;:!?.")
ordre2=list("az.erty,uiop:qsdfg!hjklm;wxcv?bn ")

def NextElem(elm, li):
    for i,v in enumerate(li):
        if v == elm:
            if i == len(li) - 1:
                return li[0]
            else:
                return li[i+1]
    return None

x =  NextElem ('d', ['a', 'b', 'c'])
    
print(x)

order_alpha=list("abcdefghijklmnopqrstuvwxyz ,;:!?.")
order2=list("az.erty,uiop:qsdfg!hjklm;wxcv?bn ")

result = ''
for idx,v in enumerate(order_alpha):
    r = NextElem(v, order2)
    result += r
print(result)
def NextElem(elm, inlist: list):
    if elm not in inlist:
        return None
    elif inlist.index(elm) < len(inlist) - 1:
        # inlist.index(elm) 查找elm在列表中的下标
        return inlist[inlist.index(elm) + 1]
    elif inlist.index(elm) == len(inlist) - 1:
        return inlist[-1]
def mydecode(ordre2:str):
    order_alpha=list("abcdefghijklmnopqrstuvwxyz ,;:!?.")
    ordre2 = list(ordre2)
    for i in range(len(ordre2)):
        ordre2[i]=NextElem(ordre2[i],order_alpha)
    return ''.join(ordre2)



if __name__ == '__main__':
    ordre2="az.erty,uiop:qsdfg!hjklm;wxcv?bn "
    print(mydecode(ordre2))

img

def NextElem(elm, li:list):
    if elm in li:
        return li[li.index(elm) - len(li) + 1]
    else:
        return None

order_alpha = list("abcdefghijklmnopqrstuvwxyz ,;:!?.")
order2 = list("az.erty,uiop:qsdfg!hjklm;wxcv?bn ")

result = ''.join([NextElem(x, order2) for x in order_alpha])
print(result)