如何将列表中每个字符串开头的apple替换为橙色?
以下是我的尝试:
appleList = ['apple_00', 'apple_01', 'apple_02', 'apple_03']
appleList = ['orange' if 'apple' in appleList]
print appleList
输出: ['apple_00', 'apple_01', 'apple_02', 'apple_03']
期望的输出: ['orange_00', 'orange_01', 'orange_02', 'orange_03']
答案 0 :(得分:3)
您应该使用replace
方法修改列表中的字符串:
>>> my_list = ['Apple_00', 'Apple_01', 'Apple_02', 'Apple_03']
>>> print([s.replace('Apple', 'Orange') for s in my_list])
这将打印
['Orange_00', 'Orange_01', 'Orange_02', 'Orange_03']
作为旁注,您应该对每个Python Style Guide - PEP08的变量使用小写名称。
答案 1 :(得分:0)
当项目包含replace
时使用Apple
。
这样做:
r = [x.replace('Apple', 'Orange') for x in Register]
print(r)
# ['Orange_00', 'Orange_01', 'Orange_02', 'Orange_03']
答案 2 :(得分:0)
您正在检查列表中的某些元素是否为字符串'Apple'
,这显然不是True
。你可以这样做:
Register = ['Apple_00', 'Apple_01', 'Apple_02', 'Apple_03']
New_Register = []
for entry in Register:
New_Register.append(entry.replace('Apple', 'Orange'))
print Register
print New_Register
或者你只是使用列表理解:
Register = ['Apple_00', 'Apple_01', 'Apple_02', 'Apple_03']
Register = [x.replace('Apple', 'Orange') for x in Register]
print Register
希望这有帮助!