我需要将单个字符串中的每个字符替换为单个字符串列表。
我有一个列表和一个字符串变量
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中这样做吗?
如果以某种方式循环,则最好在以后使用另一个变量检查某个条件的每次迭代。可以这样做吗?
答案 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']