Python〜用字符串列表项替换字符串中的字符

时间:2019-06-11 06:24:03

标签: python python-3.x string

我需要将单个字符串中的每个字符替换为单个字符串列表。

我有一个列表和一个字符串变量

charList = ['a','e','i','o','u']
string = 'str'

我需要的输出是这个

  

a tr, e tr, i tr, o tr, u tr,s a r,s e r,s i r,s o r,s u r,st a ,st e ,st i ,st o ,st < strong> u

尽管字符串变量的长度可以是30个字母。

我可以在python中这样做吗?

如果以某种方式循环,则最好在以后使用另一个变量检查​​某个条件的每次迭代。可以这样做吗?

4 个答案:

答案 0 :(得分:3)

代码:

list = ['a','e','i','o','u']
string = 'str'
out = [string[:i] + c + string[i + 1:] for i in range(len(string)) for c in list]

输出:

['atr', 'etr', 'itr', 'otr', 'utr', 'sar', 'ser', 'sir', 'sor', 'sur', 'sta', 'ste', 'sti', 'sto', 'stu']

答案 1 :(得分:1)

这可以解决问题:

solution = []
for index, _ in enumerate(string):
    for letter in list:
        solution.append(string[:index] + letter + string[(index+1):])
print(solution)

我建议更改“列表”的变量名称,因为这是Python中的关键字。

希望它有所帮助!

答案 2 :(得分:1)

old_list = ['a','e','i','o','u']
string = 'str'

new_list = []
for ind,char in enumerate(string):
    new_list += [string[:ind] + string[ind:].replace(char, i, 1) for i in old_list]

print(new_list)

输出:

['atr', 'etr', 'itr', 'otr', 'utr', 'sar', 'ser', 'sir', 'sor', 'sur', 'sta', 'ste', 'sti', 'sto', 'stu']

答案 3 :(得分:-1)

def replace_char_for_list(astring, char, mylist):
    return [astring.replace(char, new_char) for new_char in mylist]

replace_char_for_list('str', 's', ['a','e','i','o','u'])
#['atr', 'etr', 'itr', 'otr', 'utr']