我有一个列表,比如
a= [1,2,3,4,5,7,1,2,3,1]
我想把a中的1替换为10。
所以新列表应该是
[10,2,3,4,5,7,10,2,3,10]
大多数Python方法都是使用列表理解:
a = [1, 2, 3, 4, 5, 7, 1, 2, 3, 1, ]
a = [10 if number == 1 else number for number 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]
最后一行将搜索映射中的数字,如果找到,将使用替换,如果不是原始值。
您可以这样做:
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]
使用列表理解:
a = [1,2,3,4,5,7,1,2,3,1]
b = [10 if v == 1 else v for v in a]
print(b)
输出:
[10, 2, 3, 4, 5, 7, 10, 2, 3, 10]
除了@Vaibhav答案,您还可以构建一个具有列表理解的新列表:
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;
用10 替换1
a = [1,2,3,4,5,7,1,2,3,1]
a1_data = []
for i in a:
if i == 1:
i = 10
a1_data.append(i)
else:
a1_data.append(i)
print(a1_data)