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 相关文章推荐
Django的数据模型访问多对多键值的方法
Jul 21 Python
Python有序字典简单实现方法示例
Sep 28 Python
微信跳一跳游戏python脚本
Apr 01 Python
在Python 2.7即将停止支持时,我们为你带来了一份python 3.x迁移指南
Jan 30 Python
多版本python的pip 升级后, pip2 pip3 与python版本失配解决方法
Sep 11 Python
Python银行系统实战源码
Oct 25 Python
Python基于requests库爬取网站信息
Mar 02 Python
Python多线程通信queue队列用法实例分析
Mar 24 Python
Python模块zipfile原理及使用方法详解
Aug 04 Python
QT5 Designer 打不开的问题及解决方法
Aug 20 Python
Python运算符+与+=的方法实例
Feb 18 Python
Python编写车票订购系统 Python实现快递收费系统
Aug 14 Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
利用Selenium添加cookie实现自动登录的示例代码(fofa)
Python基础之教你怎么在M1系统上使用pandas
python文件目录操作之os模块
May 08 #Python
You might like
php的正则处理函数总结分析
2008/06/20 PHP
PHP 多维数组排序(usort,uasort)
2010/06/30 PHP
谈谈关于php的优点与缺点
2013/04/11 PHP
PHP+FastCGI+Nginx配置PHP运行环境
2014/08/07 PHP
php 数据结构之链表队列
2017/10/17 PHP
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
js导出格式化的excel 实例方法
2013/07/17 Javascript
javascript如何创建表格(javascript绘制表格的二种方法)
2013/12/10 Javascript
node.js操作mongoDB数据库示例分享
2014/11/26 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
一道关于JavaScript变量作用域的面试题
2016/03/08 Javascript
javascript 定时器工作原理分析
2016/12/03 Javascript
js实现本地时间同步功能
2017/08/26 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
Vue强制组件重新渲染的方法讨论
2020/02/03 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
vue监听滚动事件的方法
2020/12/21 Vue.js
[08:53]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS 选手采访
2021/03/11 DOTA
python hashlib加密实现代码
2019/10/17 Python
学习Python列表的基础知识汇总
2020/03/10 Python
Python3实现飞机大战游戏
2020/04/24 Python
HTML5 Canvas API中drawImage()方法的使用实例
2016/03/25 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
Guess欧洲官网:美国服饰品牌
2019/08/06 全球购物
清明节演讲稿
2014/05/27 职场文书
增员口号大全
2014/06/18 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
海上钢琴师的观后感
2015/06/11 职场文书
严以用权专题学习研讨会发言材料
2015/11/09 职场文书
超级详细实用的pycharm常用快捷键
2021/05/12 Python
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
ElementUI实现el-form表单重置功能按钮
2021/07/21 Javascript