如何交换 1 个字母并在 python 中给出所有可能的字母
How can I swap 1 letter and give all possible letter in python
如何只交换 "one" 字母并在 python3 中给出所有可能的输出并附加到列表中
例如:单词"study"
我们将得到所有可能的输出,如
swap the s:
tsudy, tusdy, tudsy, tudys,
#swap the t:
tsudy, sutdy, sudty, sudyt
#also with u,d,y:
...
您可以将单词转换为字符列表,
chars = list(word)
使用其位置从列表中删除选定的字符
chars.pop(index)
然后在此列表的不同位置添加此字符
new_chars = chars[:pos] + [char] + chars[pos:]
代码:
word = 'study'
for index, char in enumerate(word):
print('char:', char)
# create list without selected char
chars = list(word)
chars.pop(index)
# put selected char in different places
for pos in range(len(chars)+1):
# create new list
new_chars = chars[:pos] + [char] + chars[pos:]
new_word = ''.join(new_chars)
# skip original word
if new_word != word:
print(pos, '>', new_word)
结果:
char: s
1 > tsudy
2 > tusdy
3 > tudsy
4 > tudys
char: t
0 > tsudy
2 > sutdy
3 > sudty
4 > sudyt
char: u
0 > ustdy
1 > sutdy
3 > stduy
4 > stdyu
char: d
0 > dstuy
1 > sdtuy
2 > stduy
4 > stuyd
char: y
0 > ystud
1 > sytud
2 > styud
3 > stuyd
顺便说一句: 我不会称它为 "swapping"
而是 "moving"
字符。在 "swapping" 中,我宁愿替换两个字符 - 即。在 abcd
中将 a
与 c
交换得到 cbad
,而不是 bcad
(如 "moving")
如何只交换 "one" 字母并在 python3 中给出所有可能的输出并附加到列表中
例如:单词"study" 我们将得到所有可能的输出,如
swap the s:
tsudy, tusdy, tudsy, tudys,
#swap the t:
tsudy, sutdy, sudty, sudyt
#also with u,d,y:
...
您可以将单词转换为字符列表,
chars = list(word)
使用其位置从列表中删除选定的字符
chars.pop(index)
然后在此列表的不同位置添加此字符
new_chars = chars[:pos] + [char] + chars[pos:]
代码:
word = 'study'
for index, char in enumerate(word):
print('char:', char)
# create list without selected char
chars = list(word)
chars.pop(index)
# put selected char in different places
for pos in range(len(chars)+1):
# create new list
new_chars = chars[:pos] + [char] + chars[pos:]
new_word = ''.join(new_chars)
# skip original word
if new_word != word:
print(pos, '>', new_word)
结果:
char: s
1 > tsudy
2 > tusdy
3 > tudsy
4 > tudys
char: t
0 > tsudy
2 > sutdy
3 > sudty
4 > sudyt
char: u
0 > ustdy
1 > sutdy
3 > stduy
4 > stdyu
char: d
0 > dstuy
1 > sdtuy
2 > stduy
4 > stuyd
char: y
0 > ystud
1 > sytud
2 > styud
3 > stuyd
顺便说一句: 我不会称它为 "swapping"
而是 "moving"
字符。在 "swapping" 中,我宁愿替换两个字符 - 即。在 abcd
中将 a
与 c
交换得到 cbad
,而不是 bcad
(如 "moving")