Python 交换序列两位数
Python swapping sequence double digits
运行良好的代码示例
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 个字符,代码将交换 letters/numbers。
swap_seq
不应该是一个字符串。这是一个索引值序列,所以使用更合适的数据类型,列出一个整数列表:
swap_seq=[1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16]
swapped=''.join([s[i] for i in swap_seq])
我想这就是你想要的,没试过。我阅读您的代码的方式是,您使用 swap_seq
中概述的序列对 s 进行索引,因此 split
将为您提供位置列表,而 i 则不是 [ 中的每个可能字符=11=],其中包含空格,现在将是去掉空格的字符串列表。
swapped=''.join([s[int(i)] for i in swap_seq.split()])
运行良好的代码示例
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 个字符,代码将交换 letters/numbers。
swap_seq
不应该是一个字符串。这是一个索引值序列,所以使用更合适的数据类型,列出一个整数列表:
swap_seq=[1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16]
swapped=''.join([s[i] for i in swap_seq])
我想这就是你想要的,没试过。我阅读您的代码的方式是,您使用 swap_seq
中概述的序列对 s 进行索引,因此 split
将为您提供位置列表,而 i 则不是 [ 中的每个可能字符=11=],其中包含空格,现在将是去掉空格的字符串列表。
swapped=''.join([s[int(i)] for i in swap_seq.split()])