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使用multiprocessing模块实现带回调函数的异步调用方法
Apr 18 Python
Django的URLconf中使用缺省视图参数的方法
Jul 18 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
May 03 Python
python使用scrapy发送post请求的坑
Sep 04 Python
python爬虫租房信息在地图上显示的方法
May 13 Python
计算机二级python学习教程(1) 教大家如何学习python
May 16 Python
Python实现带下标索引的遍历操作示例
May 30 Python
Python使用百度api做人脸对比的方法
Aug 28 Python
Python for循环搭配else常见问题解决
Feb 11 Python
python实现密度聚类(模板代码+sklearn代码)
Apr 27 Python
详解用 python-docx 创建浮动图片
Jan 24 Python
Python使用永中文档转换服务
May 06 Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
利用Selenium添加cookie实现自动登录的示例代码(fofa)
Python基础之教你怎么在M1系统上使用pandas
python文件目录操作之os模块
May 08 #Python
You might like
PHP 巧用数组降低程序的时间复杂度
2010/01/01 PHP
如何使用Linux的Crontab定时执行PHP脚本的方法
2011/12/19 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
thinkPHP中_initialize方法实例分析
2016/12/05 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
jquery+ashx无刷新GridView数据显示插件(实现分页、排序、过滤功能)
2010/04/25 Javascript
关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题
2010/12/08 Javascript
js禁止页面刷新禁止用F5键刷新禁止右键的示例代码
2013/09/23 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
jQuery中关于ScrollableGridPlugin.js(固定表头)插件的使用逐步解析
2014/07/17 Javascript
js使用for循环及if语句判断多个一样的name
2014/09/09 Javascript
JavaScript学习笔记之Cookie对象
2015/01/22 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
ES6中非常实用的新特性介绍
2016/03/10 Javascript
Jquery获取第一个子元素简单实例
2016/06/02 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
javascript计算对象长度的方法
2017/10/25 Javascript
命令行批量截图Node脚本示例代码
2019/01/25 Javascript
微信小程序与公众号实现数据互通的方法
2019/07/25 Javascript
python中matplotlib实现最小二乘法拟合的过程详解
2017/07/11 Python
python ansible服务及剧本编写
2017/12/29 Python
Python3实现mysql连接和数据框的形成(实例代码)
2020/01/17 Python
Python常见反爬虫机制解决方案
2020/06/01 Python
Python sklearn中的.fit与.predict的用法说明
2020/06/28 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
皮姆斯勒语言学习:Pimsleur Language Programs
2018/06/30 全球购物
请写一个C函数,若处理器是Big_endian的,则返回0;若是Little_endian的,则返回1
2015/07/16 面试题
博士学位自我鉴定范文
2013/12/26 职场文书
幼师中班个人总结
2015/02/12 职场文书
2015年结对帮扶工作总结
2015/05/04 职场文书
2015年测量员工作总结
2015/05/23 职场文书
导游词之介休绵山
2019/12/31 职场文书
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python