【发布时间】:2017-12-28 22:48:42
【问题描述】:
我正在尝试将所有字母一个一个地添加到字符串中的所有位置,这是代码:
from string import ascii_lowercase
var = 'abc'
for i in ascii_lowercase:
result = [var[:j] + i + var[j:] for j in range(len(var))]
但这就是我得到的:
['zabc', 'azbc', 'abzc']
这是我所期待的:
['aabc', 'abac', 'abca','babc','abbc','abcb'...]
有谁知道如何解决这个问题。谢谢。
【问题讨论】:
-
您的预期结果是什么?
-
你想用这个来完成什么?最明显的错误是您每次都重新分配结果。您也与
range(len(var))(应该是range(len(var) + 1))相差一个 -
这不是代码高尔夫...有什么理由不能让这个代码更易于人类阅读吗?
-
我删掉了帖子
-
您在每个循环中都覆盖了
result,因此您只会看到ascii_lowercase中最后一个字符的结果是z。
标签: string python-3.x list alphabetical