如何解决Python交换序列两位数
运行良好的代码示例
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
中概述的序列索引 s,因此 split
将为您提供位置列表,而 i,而不是 swap_seq
中的每个可能的字符{1}} 包含空格,现在将是去掉空格的字符串列表。
swapped=''.join([s[int(i)] for i in swap_seq.split()])
,
swap_seq
不应是字符串。这是一个索引值序列,因此使用更合适的数据类型,列出整数列表:
swap_seq=[1,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])
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。