【发布时间】:2021-04-13 18:03:51
【问题描述】:
效果很好的代码示例
s="abc123"
swap_seq="103254"
swapped=''.join([s[int(i)] for i in swap_seq])
if s[0].isupper(): swapped.capitalize()
print (swapped)
但我有大量字符需要精确交换 18 个字符,只是想知道如何处理两位数
我试图让它工作的例子如下。
s="0123456789abcdefgh"
swap_seq="1 0 3 2 5 4 7 6 9 8 11 10 13 12 15 14 17 16"
swapped=''.join([s[int(i)] for i in swap_seq])
if s[0].isupper(): swapped.capitalize()
print (swapped)
试过 ["0", "1", "2"] 但是输入的长度必须完全相同,否则我会出错。
我想要做的是让用户输入最多 18 个字符的任何内容,代码将交换字母/数字。
【问题讨论】:
-
你不能先做
swap_seq = swap_seq.split()吗?这样它是一个列表而不是一个字符串,那么你的其余逻辑应该按预期工作