编写一个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))
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)