如何只替换列表的某个部分?

时间:2016-07-19 13:34:24

标签: python list

如何将列表中每个字符串开头的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']

3 个答案:

答案 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

希望这有帮助!