【发布时间】:2020-06-15 12:59:09
【问题描述】:
我有一个清单说
a= [1,2,3,4,5,7,1,2,3,1]
我想将 a 中的 1 替换为 10。
所以新列表应该是
[10,2,3,4,5,7,10,2,3,10]
【问题讨论】:
-
你可以看看
index()的列表方法。
我有一个清单说
a= [1,2,3,4,5,7,1,2,3,1]
我想将 a 中的 1 替换为 10。
所以新列表应该是
[10,2,3,4,5,7,10,2,3,10]
【问题讨论】:
index() 的列表方法。
将 1 替换为 10
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)
【讨论】:
如果您从数据集中读取列表。可以直接对数据框进行如下处理。
for i in range(len(df)):
if(df.loc[i,'column'] == 1):
df.at[i, 'column'] = 10
Continue;
【讨论】:
您可以使用列表推导相当轻松地进行任何列表编辑。在这种情况下,您可以这样做:
a = [x if x!=1 else 10 for x in a]
【讨论】:
除了@Vaibhav 答案,您还可以使用列表理解构建一个新列表:
a_modified = [10 if x == 1 else x for x in a]
【讨论】:
大多数pythonic方法是使用列表推导:
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]
b = [10 if v == 1 else v for v in a]
print(b)
输出:
[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]
【讨论】: