-
2020-11-24 03:47:22
我有以下数组:
example_array = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
indexes = [[1,2,3], [2,3], [0,4,2], [1,4,3], [0,4,3], [1,2,3], [1,2]]
我想根据索引中的索引将example_array中的元素替换为1.所以,预期的结果应该是这样的:
example_array = [[0,1,1,1,0],[0,0,1,1,0],[1,0,1,0,1],[0,1,0,1,1],[1,0,0,1,1],[0,1,1,1,0],[0,1,1,0,0]].
我尝试了不同的方法,例如使用pandas,如下所示:
matrix = pd.DataFrame(example_array)
for row in matrix:
for i in indexes:
for j in i:
x_u.iloc[x, j] = 1
但它并没有给我带来希望的结果!该解决方案不需要使用pandas库.
谢谢您的帮助!
最佳答案 你可以这样做:
example_array = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
indexes = [[1,2,3], [2,3], [0,4,2], [1,4,3], [0,4,3], [1,2,3], [1,2]]
for i,index in enumerate(indexes):
for idx in index:
example_array[i][idx] = 1
print example_array
输出:
[[0, 1, 1, 1, 0], [0, 0, 1, 1, 0], [1, 0, 1, 0, 1], [0, 1, 0, 1, 1], [1, 0, 0, 1, 1], [0, 1, 1, 1, 0], [0, 1, 1, 0, 0]]
更多相关内容 -
python如何获取列表中每个元素的下标位置
2020-09-19 04:41:38主要介绍了python如何获取列表中每个元素的下标位置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 -
python批量替换列表中的元素
2020-09-16 17:02:43在日常开发中,我们可能会遇到批量修改列表元素的需求。可以使用列表推导式来快速的实现,在这里做了一些技术总结可供参考。 一,修改单个词语 lists = ['神奇', '建投', '证券', '有限公司', '今天', '投资', '了'...在日常开发中,我们可能会遇到批量修改列表元素的需求。可以使用列表推导式来快速的实现,在这里做了一些技术总结可供参考。
一,修改单个词语
lists = ['神奇', '建投', '证券', '有限公司', '今天', '投资', '了', '一', '款',"神奇",'游戏'] new_lists =['奇迹' if i =='神奇' else i for i in lists] #-----output---------- ['奇迹', '建投', '证券', '有限公司', '今天', '投资', '了', '一', '款', '奇迹', '游戏']
二,使用列表修改多个词语
lists = ['神奇', '建投', '证券', '有限公司', '今天', '投资', '了', '一', '款',"神迹",'游戏'] replace_list = ['神奇',"神迹"] new_lists =['奇迹' if i in replace_list else i for i in lists] #-----output---------- ['奇迹', '建投', '证券', '有限公司', '今天', '投资', '了', '一', '款', '奇迹', '游戏']
三,使用字典修改多个词语
lists = ['神奇', '建投', '证券', '有限公司', '今天', '投资', '了', '一', '款',"神迹",'游戏'] replace_dict = {'神奇':"奇幻","神迹":"奇迹"} new_lists =[replace_dict[i] if i in replace_dict else i for i in lists] #-----output---------- ['奇幻', '建投', '证券', '有限公司', '今天', '投资', '了', '一', '款', '奇迹', '游戏']
在这里使用字典去修改生成新列表是最方便强大的。所以推荐使用最后这一种方法。
-
python中关于元素替换的一些总结
2020-11-24 08:12:26python中元素进行替换有很多方法,下面是我学习中的一些总结1、字符串替换str.replace()方法python中的replace()方法是把字符串中的old字符串替换成new的字符串,如果指定替换次数max,则按照替换次数进行替换str....python中元素进行替换有很多方法,下面是我学习中的一些总结
1、字符串替换str.replace()方法
python中的replace()方法是把字符串中的old字符串替换成new的字符串,如果指定替换次数max,则按照替换次数进行替换
str.replace(old,new,count=0)
old:字符串替换前的字符
new:字符串替换后的字符
count:替换的次数,默认为0,不填表示全局替换
>>>str = "hello world! I love python!"
>>>str.replace("l","@") # 表示全局替换
'he@@o wor@d! I @ove python!'
>>>str.replace("l","@",2) # 替换指定次数
'he@@o world! I love python!'
>>>str.replace("l","@",2).replace("o","$") # 多个字符替换可以进行链式调用replace()方法
'he@@$ w$rld! I l$ve pyth$n!'
2、正则表达式中的sub()和subn()方法
sub(pattern, repl, string)
其中pattern表示原字符串中的字符,repl表示需要替换成的字符,string表示需要替换的字符串;
subn()和sub()的区别在于subn()返回的一个包含新字符串和替换次数的二元组;
>>>import re
>>>str = "hello world! I love python!"
>>>re.sub("hello","nihao",str)
'nihao world! I love python!'
>>>re.subn("l","*",str)
('he**o wor*d! I *ove python!', 4)
>>>
3、如果同时处理多个字符串的替换,此时可以使用string的maketrans()和translate()方法
maketrans()方法用来生成字符映射表,而translate()方法则按映射表中定义的对应关系转换并替换其中的字符,用这两种方法可以同时处理多个不同的字符。
>>>table = ''.maketrans("abcdefghij","1234567890") # 创建映射表,注意字符串的长度要一致,达到一一对应的目的
>>>str = "hello world! i love python"
>>>str.translate(table) # 按照关系表将sting中的字符逐个进行替换
'85llo worl4! 9 lov5 pyt8on'
>>>
4、对列表里的元素进行替换,可以使用列表解析的方法
>>>list = [1,2,3,4]
>>>rep = [5 if x==1 else x for x in list]
>>>rep
[5, 2, 3, 4]
>>>
批量进行替换
>>>list = [1,2,3,4,5]
>>>pattern = [2,4]
>>>rep = ["a" if x in pattern else x for x in list]
>>>rep
[1, 'a', 3, 'a', 5]
>>>
根据字典的映射进行替换
>>>list
[1, 2, 3, 4, 5]
>>>dict = {1:"apple", 3:"banana"}
>>>rep = [dict[x] if x in dict else x for x in list]
>>>rep
['apple', 2, 'banana', 4, 5]
>>>
5、在Python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,只能重新创建一个新的字符串对象。但是如果一定要修改原字符串,可以使用io.StringIO对象。
>>>from io import StringIO
>>>str = "hello world!"
>>>io_str = StringIO(str)
>>>io_str
<_io.StringIO object at 0x7fa1e61addc8>
>>>io_str.tell() # 返回当前的位置
0
>>>io_str.read() # 从当前位置开始读取字符串
'hello world!'
>>>io_str.getvalue() # 返回字符串的全部内容
'hello world!'
>>>io_str.seek(6) # 定义开始修改的位置
6
>>>io_str.write("china") # 修改字符串
5
>>>io_str.read()
'!'
>>>io_str.getvalue() # 获取修改后的字符串全部内容
'hello china!'
>>>io_str.tell()
12
>>>
-
python列表中的元素如何替换
2021-01-11 13:38:10有时候可能要修改python的列表,通过遍历整个列表,修改值。但是这里有一个问题。 直接看代码吧。 num_list =range(5) for item in num_list: item = item*2 print num_list 这样循环取里面的元素,修改里面的...有时候可能要修改python的列表,通过遍历整个列表,修改值。但是这里有一个问题。
直接看代码吧。
num_list =range(5) for item in num_list: item = item*2 print num_list
这样循环取里面的元素,修改里面的值,感觉 是没有什么问题。 其实结果 没有被修改,原因item 的id 已经不是原来的id,看下面
[0,1,2,3,4]
那么问题该如何修改list 里面元素的值呢?
#方法一 for i, item in enumerate(num_list): num_list[i] =num_list[i]*2 #方法二 for i in range(len(num_list)): num_list[i] = num_list[i]*2
这两种方法类似,就是拿到索引值,直接通过索引,在修改里面的值,就可以了。
为什么python中不建议在for循环中修改列表?
在遍历列表,如果要删除也要小心。可以先复制一份,在进行操作。例如:
num_list = [1, 2, 3, 4, 5] for item in num_list[:]: if item == 2: num_list.remove(item) else: print(item) print(num_list)
如果要删除某个元素, 可以先复制一份。对复制的列表 遍历,找到相关条件,list.remove(value) 把它删除,这样做比较安全。
总结: 队列操作,特别for 循环,要格外注意,删除数据的时候,一定不要对列表直接操作。原因上面的链接,说的比较清楚了。
-
python替换list中的元素
2021-07-15 23:27:23对于列表,除了可以向列表添加元素,删除列表元素以外,列表已有的元素,也是可以修改的,通过索引指定位置,并赋值新的元素,即可替换列表中原有的元素 假如班上同学Candy需要转走了,同时有一个新的同学Canlina... -
python 二维列表 替换元素
2021-10-12 16:47:11python二维列表在替换时会出现下面的问题 z=[[0]*3]*3 z[0][0] print(z) [[1, 0], [1, 0], [1, 0]] 本来是想替换第一个元素的,结果每一行的第一个元素都被替换了 解决方法: z=[[0]*3]*3 a=z[0].copy() a[0]=1 z... -
python 实现交换两个列表元素的位置示例
2020-11-29 12:20:10python 实现交换两个列表元素的位置示例在IDLE 中验证如下:>>> numbers = [5, 6, 7]>>> i = 0>>> numbers[i], numbers[i+1] = numbers[i+1], numbers[i]>>> numbers[6, 5, 7]python是可以一次赋值两个变量的!... -
python修改列表指定位置的_第24p,必须掌握,列表的常用方法
2020-11-20 10:29:16大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第24篇文章,第二阶段的课程:Python基础知识:Python中的列表之列表的常用方法。学习本课程,建议先看一遍:【计算机基础知识】课程。Python中为列表提供了... -
替换列表元素的三种方法
2020-12-06 02:21:34把列表中的元素直接更改、替换。例子:表面列表aaa中的元素‘黑色’替换成‘黄色’。aaa=['黑色','红色','白色','黑色']第一种方法(不建议):aaa=['黑色','红色','白色','黑色']aaa=str(aaa)bbb=aaa.replace("黑色",... -
Python3基础 调换列表中的两个元素
2020-12-03 23:05:25——————————————————————————————————————————code:member=[‘文殊‘,‘普贤‘,‘观音‘,‘弥勒‘]print(‘调换前的列表‘)print(member)#调换列表的前两个元素temp=... -
python – 替换列表中的每个第二个元素
2021-02-11 04:21:36我有一个二维列表:[[5, 80, 2, 57, 5, 97], [2, 78, 2, 56, 6, 62], [5, 34, 3, 54, 6, 5, 2, 58, 5, 61, 5, 16]]我需要将每个第二个元素更改为0,从第一个元素开始.所以看起来应该是这样的:[[0, 80, 0, 57, 0, 97]... -
python 将列表中的奇数位置元素与偶数位置元素调换
2022-03-30 10:05:01python 将列表中的奇数位置元素与偶数位置元素调换 今天突然想到了这个问题,想想这种情况自己竟然没有实现过,所以花了几分钟写一下 这里需要注意的是,列表的长度可能是奇数个也有可能是偶数个 num = [1,3,5,6,8,9... -
python替换元素
2020-11-24 02:37:45广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 有没有更快(可能不那么简洁和或不那么pythonic)的方式来做到这一点?... python 中替换元素 ... -
Python:替换数组中的值
2020-12-06 02:21:51list(g) new_v = (this_array[indices[0]-1] + this_array[indices[-1]+1]) / 2 this_array[indices[0]:indices[-1]+1].fill(new_v) 如果最后一个元素或第一个元素可以是9999,则使用以下内容: from itertools ... -
Python–元组上的替换元素操作
2020-12-06 02:21:07有时,在使用Python元组时,我们可能会遇到需要执行提取的元组交替链的操作的问题。这种操作在web开发等许多领域都有应用。让我们讨论执行此任务的某些方式。输入:test-tuple=(5,6,3)输有时,在使用Python元组时... -
python学习(三)字符串替换指定位置元素
2021-01-13 16:14:19s='123254321' #将第4个2替换成4 i,j=3,'4' string=list(s) #字符串转列表 string[i]=j #列表替换元素 z=''.join(string) #列表转字符串 print(z) -
Python中的高效数组替换
2021-01-14 23:59:08更具体地说,我需要将不符合给定条件的每个元素替换为该行中的另一个随机值。例如,我想将每行数据替换为介于-.8和.8之间的数据(行)中的随机单元格。我的低效解决方案看起来像这样:import numpy as npdata = np.... -
python 获取list特定元素下标的实例讲解 python删除list列表多个指定位置中的元素
2021-04-27 02:29:19Python列表如何获得一个指定元素所在的下标?print(your_list.index('your_item')) ###your_list为列表名称 your_item为需要修该的数据。 print [i for i, x in enumerate(your_list) if x == 'your_item'] your_... -
Python对列表中的元素进行批量修改
2020-11-24 02:38:09Python编程从入门到实战,编写一个名为make_great() 的函数,对魔术师列表进行修改,在每个魔术师的名字中都加入字样“the Great”。开始使用for循环遍历列表元素,再把“the Great”+原始元素赋值给当前元素,无果... -
Python入门--列表元素的修改
2022-02-10 17:25:21#列表元素的修改 #为指定索引的元素赋予一个新值 #为指定的切片赋予一个新值 lst=[10,20,30,40] lst[2]=100#将索引为2的位置上的元素修改为100 print(lst)#[10, 20, 100, 40] #切片 lst[1:3]=[800,700,600,500]#将... -
如何替换python列表的特定索引处的值?
2021-01-12 08:19:21Python代码规则第一,如果它不可读,没人会花足够长的时间看得出来所有有用的信息。始终使用描述性变量名。几乎没有发现代码中的错误,让我们以好名字,慢动作重播的方式再次来看一下:to_modify = [5,4,3,2,1,0]... -
python替换字符串中的子串图文步骤
2020-12-08 06:37:57python替换字符串中的子串图文步骤修改字符串本身是不可能的,因为字符串是不可变类型,只能是通过某些方法来产生它的副本。再把副本赋值给原字符串,达到类似替换的作用。这里介绍几种方法。旧串换新串:使用str.... -
python实现对列表中的元素进行倒序打印
2021-02-09 20:06:351.案例要求:"""有列表["a", "d", "f...根据逻辑找规律,确定数据替换进行的次数,元素个数为奇数和偶数需要注意。(2).交换数据的双方,索引不同,其中一个由小到大,另一个由大到小。list1 = ["a", "d", "f", "j","... -
使用Python替换矩阵中的特定值
2020-12-08 19:13:44我认为对您的特定问题最好的答案是使用矩阵类型的对象。在考虑到矩阵的大部分都是由零填充的,因此稀疏矩阵应该是以内存友好的方式存储这些大容量矩阵的最有效的方法。这应该优于直接使用numpy数组,特别是对于两个... -
Python list添加、删除、替换元素
2020-04-05 14:01:43Python之list添加新元素 现在,班里有3名同学: >>> L = ['Adam', 'Lisa', 'Bart'] 今天,班里转来一名新同学 Paul,如何把新同学添加到现有的 list 中呢? 第一个办法是用 list 的append()方法,把新... -
Python 列表修改元素以及列表方法
2021-02-10 00:48:261.修改元素# 创建一个列表stus = ['孙悟空','猪八戒','沙和尚','唐僧','蜘蛛精','白骨精']# print("修改前:",stus)# 修改列表中的元素# 直接通过索引来修改元素stus[0] = 'sunwukong'stus[2] = '哈哈'# 通过del来... -
python中怎么比较两个列表-Python两个列表元素比较
2020-11-01 12:19:38Python两个列表元素的对比经常遇到,如何正确的比较?知识点:列表解析。详解:列表解析 List Comprehensions表达式:[expression for iter_val in iterable if cond_expr][expression]:最后执行的结果[for iter_... -
python 输出所有列表元素的乘积
2020-11-24 08:54:34def multiply_list(items): tot = 1 for x in items: tot *= x return tot print(multiply_list([1,2,-8]))…python循环删除列表元素 觉得有用的话,欢迎一起讨论相互学习~Follow Me 常见错误 常见错误一:使用固定...