Python 中数组和数字相乘时的注意事项说明


Posted in Python onMay 10, 2021

注意事项

[object] * n 的时候并没有复制n-1个object,而是增加了n-1个对object的引用。

例子说明

目标:生成一个10*10且所有值都是0的二维数组

方法一:

[ [0] * 10] * 10

方法二:

[ [0 for _ in range(10)] for _ in range(10)]

本以为两种方法得到的结果是一样,但是在使用时发现有些不一样。如下面的代码所示。

当仅仅更改a[2][2]的值的时候,a[k][2] (k取0到9)全部被更改成了4。

其实这是因为[object] * n 的时候并没有复制n-1个object,而是增加了n-1个引用。

a = [ [0] * 10] * 10 
b = [ [0 for _ in range(10)] for _ in range(10)] 
a[2][2] = 4 
b[2][2] = 4 
for i in a: 
    print(i) 
print("--------") 
for i in b: 
    print(i) 
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 0, 0, 0, 0, 0, 0, 0]
 
[0, 0, 4, 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, 4, 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, 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, 0, 0, 0, 0, 0, 0, 0]

补充:python 中numpy数组与数组使用*相乘的效果

输入:

import numpy as np
b = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
a = np.array([150,270,150,270])
b2 = b * a
print(b)
print(a)
print(b2)

输出:

[[ 1 2 3 4]

[ 5 6 7 8]

[ 9 10 11 12]]

[150 270 150 270]

[[ 150 540 450 1080]

[ 750 1620 1050 2160]

[1350 2700 1650 3240]]

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。如有错误或未考虑完全的地方,望不吝赐教。

Python 相关文章推荐
Python中3种内建数据结构:列表、元组和字典
Nov 30 Python
使用Python中的cookielib模拟登录网站
Apr 09 Python
Python中__new__与__init__方法的区别详解
May 04 Python
编写Python CGI脚本的教程
Jun 29 Python
动态规划之矩阵连乘问题Python实现方法
Nov 27 Python
python3解析库pyquery的深入讲解
Jun 26 Python
对python3中的RE(正则表达式)-详细总结
Jul 23 Python
python 内置函数汇总详解
Sep 16 Python
浅谈tensorflow 中tf.concat()的使用
Feb 07 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
Python数据可视化实现多种图例代码详解
Jul 14 Python
Python 如何实现访问者模式
Jul 28 Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
利用Selenium添加cookie实现自动登录的示例代码(fofa)
Python基础之教你怎么在M1系统上使用pandas
python文件目录操作之os模块
May 08 #Python
You might like
PHP文本操作类
2006/11/25 PHP
PR值查询 | PageRank 查询
2006/12/20 PHP
php中批量删除Mysql中相同前缀的数据表的代码
2011/07/01 PHP
PHP中register_globals参数为OFF和ON的区别(register_globals 使用详解)
2012/02/05 PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
2013/07/05 PHP
Prototype Function对象 学习
2009/07/12 Javascript
通过jQuery源码学习javascript(三)
2012/12/27 Javascript
js设置cookie过期当前时间减去一秒相当于立即过期
2014/09/04 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
2015/03/26 Javascript
js给selected添加options的方法
2015/05/06 Javascript
KnockoutJS 3.X API 第四章之事件event绑定
2016/10/10 Javascript
Node.js环境下Koa2添加travis ci持续集成工具的方法
2017/06/19 Javascript
angular4实现tab栏切换的方法示例
2017/10/21 Javascript
微信小程序实现多选功能
2018/11/04 Javascript
深入浅析Vue中mixin和extend的区别和使用场景
2019/08/01 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
JavaScript或jQuery 获取option value值方法解析
2020/05/12 jQuery
vue组件系列之TagsInput详解
2020/05/14 Javascript
利用JavaScript为句子加标题的3种方法示例
2021/01/05 Javascript
python利用小波分析进行特征提取的实例
2019/01/09 Python
Python函数中参数是传递值还是引用详解
2019/07/02 Python
python 使用opencv 把视频分割成图片示例
2019/12/12 Python
Python正则表达式学习小例子
2020/03/03 Python
Internet主要有哪些网络群组成
2015/12/24 面试题
乔迁宴答谢词
2014/01/21 职场文书
《大海那边》教学反思
2014/04/09 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
优秀团员个人总结
2015/02/26 职场文书
2015高考寄语集锦
2015/02/27 职场文书
公司职员入党自传书
2015/06/26 职场文书
小学感恩主题班会
2015/08/12 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
会计入职心得体会
2016/01/22 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang
Redis高可用集群redis-cluster详解
2022/03/20 Redis
MySql统计函数COUNT的具体使用详解
2022/08/14 MySQL