为什么这些脚本不修改所有列表?
Why these scripts don't modify all of the list?
我正在 python 中练习列表。我正在尝试将 ['a', 'n', 'a', 'c', 'o', 'n', 'd', 'a']
中的元音字母更改为 str
'v'
。我使用了 for
循环和 range
,但是没有发生任何事情!
我的脚本有什么问题?
脚本一:
a = list('anaconda')
vowels = list('aeiou')
for i in a:
if i in vowels:
i = 'v'
print(a)
也尝试过:
a = list('anaconda')
vowels = list('aeiou')
for i in range(len(a)):
if i in vowels:
i = 'v'
print(a)
但是他们两个returns a
没有变化:['a', 'n', 'a', 'c', 'o', 'n', 'd', 'a']
!
好的,我们改一下。
首先,理解那个代码中的“i”
for i in a
只是名为“i”的变量,等于“a”列表中的值。
当你写
i = 'v'
您只需更改变量“i”而不是“a”列表中的值。
那么您需要更改的不是“i”,而是“a”的值。
写下:
for i in range(len(a)):
if a[i] in vowels:
a[i] = 'v'
解决方案是使用“a[i]”来引用列表中的值。
a = list('anaconda')
vowels = list('aeiou')
for i in range(len(a)):
if a[i] in vowels:
a[i] = 'v'
print(a)
您正在使用索引作为值,您需要使用 `a[x] 来检查字符是否为元音(出现在给定列表中)
我正在 python 中练习列表。我正在尝试将 ['a', 'n', 'a', 'c', 'o', 'n', 'd', 'a']
中的元音字母更改为 str
'v'
。我使用了 for
循环和 range
,但是没有发生任何事情!
我的脚本有什么问题?
脚本一:
a = list('anaconda')
vowels = list('aeiou')
for i in a:
if i in vowels:
i = 'v'
print(a)
也尝试过:
a = list('anaconda')
vowels = list('aeiou')
for i in range(len(a)):
if i in vowels:
i = 'v'
print(a)
但是他们两个returns a
没有变化:['a', 'n', 'a', 'c', 'o', 'n', 'd', 'a']
!
好的,我们改一下。
首先,理解那个代码中的“i”
for i in a
只是名为“i”的变量,等于“a”列表中的值。 当你写
i = 'v'
您只需更改变量“i”而不是“a”列表中的值。
那么您需要更改的不是“i”,而是“a”的值。
写下:
for i in range(len(a)):
if a[i] in vowels:
a[i] = 'v'
解决方案是使用“a[i]”来引用列表中的值。
a = list('anaconda')
vowels = list('aeiou')
for i in range(len(a)):
if a[i] in vowels:
a[i] = 'v'
print(a)
您正在使用索引作为值,您需要使用 `a[x] 来检查字符是否为元音(出现在给定列表中)