首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这些脚本不修改所有的列表?

为什么这些脚本不修改所有的列表?
EN

Stack Overflow用户
提问于 2021-12-06 08:16:23
回答 2查看 50关注 0票数 1

我在用python练习列表。我想把['a', 'n', 'a', 'c', 'o', 'n', 'd', 'a']中的元音字母改成str 'v'。我使用了for循环和range,但是任何事情都不会发生!我的剧本怎么了?

脚本一:

代码语言:javascript
复制
a = list('anaconda')
vowels = list('aeiou')
for i in a:
    if i in vowels:
        i = 'v'
print(a)

也尝试过:

代码语言:javascript
复制
a = list('anaconda')
vowels = list('aeiou')
for i in range(len(a)):
    if i in vowels:
        i = 'v'
print(a)

但是它们都返回了a而没有改变:['a', 'n', 'a', 'c', 'o', 'n', 'd', 'a']

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-06 08:32:00

代码语言:javascript
复制
a = list('anaconda')
vowels = list('aeiou')
for i in range(len(a)):
    if a[i] in vowels:
        a[i] = 'v'
print(a)

您使用索引作为值,需要使用‘as来检查字符是否为元音(在给定列表中)

票数 2
EN

Stack Overflow用户

发布于 2021-12-06 08:24:32

好吧,我们换一下吧。

首先,要理解代码中的"i“

代码语言:javascript
复制
for i in a

只是名为"i“的变量,等于"a”列表中的值。当你写

代码语言:javascript
复制
i = 'v' 

您只需更改变量"i“,而不更改"a”列表中的值。

然后,你需要改变的不是“我”,而是价值从"a“。

写上:

代码语言:javascript
复制
for i in range(len(a)):
   if a[i] in vowels:
      a[i] = 'v'

解决方案是使用"ai“来引用列表中的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70242549

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档