Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中替换单个列表中的多个数字_Python_List_Replace - Fatal编程技术网

如何在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()
方法。