如何在python中替换单个列表中的多个数字
我有一张单子要说如何在python中替换单个列表中的多个数字,python,list,replace,Python,List,Replace,我有一张单子要说 a=[1,2,3,4,5,7,1,2,3,1] 我想将a中的1替换为10。 所以新的名单应该是 [10,2,3,4,5,7,10,2,3,10] 您可以这样做: a= [1,2,3,4,5,7,1,2,3,1] for i,v in enumerate(a): if v == 1: a[i] = 10 print(a) 输出: [10,2,3,4,5,7,10,2,3,10] [10, 2, 3, 4, 5, 7, 10, 2, 3, 10] 使
a=[1,2,3,4,5,7,1,2,3,1]
我想将a中的1替换为10。所以新的名单应该是
[10,2,3,4,5,7,10,2,3,10]
您可以这样做:
a= [1,2,3,4,5,7,1,2,3,1]
for i,v in enumerate(a):
if v == 1:
a[i] = 10
print(a)
输出:
[10,2,3,4,5,7,10,2,3,10]
[10, 2, 3, 4, 5, 7, 10, 2, 3, 10]
使用列表理解:
a = [1,2,3,4,5,7,1,2,3,1]
b = [10 if v == 1 else v for v in a]
print(b)
a = [1, 2, 3, 4, 5, 7, 1, 2, 3, 1, ]
a = [10 if number == 1 else number for number in a]
a_modified = [10 if x == 1 else x for x in a]
输出:
[10,2,3,4,5,7,10,2,3,10]
[10, 2, 3, 4, 5, 7, 10, 2, 3, 10]
最具python风格的方法是使用列表理解:
a = [1,2,3,4,5,7,1,2,3,1]
b = [10 if v == 1 else v for v in a]
print(b)
a = [1, 2, 3, 4, 5, 7, 1, 2, 3, 1, ]
a = [10 if number == 1 else number for number in a]
a_modified = [10 if x == 1 else x for x in a]
如果必须替换多个数字,可以使用映射:
a = [1, 2, 3, 4, 5, 7, 1, 2, 3, 1, ]
mapping = {
# old: new
1: 10,
2: 20,
}
a = [mapping.get(number, number) for number in a]
最后一行将搜索映射中的数字,如果找到,将使用替换,如果不是原始值。除了@Vaibhav answer,您还可以创建一个具有列表理解的新列表:
a = [1,2,3,4,5,7,1,2,3,1]
b = [10 if v == 1 else v for v in a]
print(b)
a = [1, 2, 3, 4, 5, 7, 1, 2, 3, 1, ]
a = [10 if number == 1 else number for number in a]
a_modified = [10 if x == 1 else x for x in a]
使用列表理解,您可以相当轻松地进行任何列表编辑。在这种情况下,您可以执行以下操作:
a = [x if x!=1 else 10 for x in a]
如果您正在从数据集读取列表。您可以按如下方式直接处理数据帧
for i in range(len(df)):
if(df.loc[i,'column'] == 1):
df.at[i, 'column'] = 10
Continue;
将1替换为10
您可以查看列表的
index()
方法。