【发布时间】:2023-02-23 19:56:26
【问题描述】:
我有字符串
hello 元音必须交换,输出为 holle e 和 o 被交换
下面是我的代码
vowels = ['a','e','i','o','u']
first_str = 'aiao'
l = list(first_str)
vowel_list = []
for vowel in l :
if vowel in vowels:
vowel_list.append(vowel)
for index,value in enumerate(l):
if value in vowels:
# print(value)
l[index] = vowel_list[-1]
vowel_list.remove(vowel_list[-1])
print(vowel_list)
''.join(l)
我得到输出 oaai 预期也是 oaia
我的方法
- 提取列表中的所有元音
- 遍历字符串
- 通过放置 [-1] 从右侧迭代时交换元音
- 交换后从元音列表中删除元素
使用 pop 代码编辑礼貌@pranav 正在工作
for index,value in enumerate(l): if value in vowels: l[index] = vowel_list.pop(-1) ''.join(l)
【问题讨论】:
-
如果该列表具有重复元素,
vowel_list.remove(vowel_list[-1])不会执行您期望的操作。也许你打算使用pop()? -
另请指定该输入的预期输出背后的逻辑
-
@PranavHosangadi 为什么在删除索引时它不能处理重复元素。流行音乐也在工作
-
@abd
remove()方法删除第一次出现的指定元素。