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使用正则表达式检测密码强度源码分享
Jun 11 Python
Python中threading模块join函数用法实例分析
Jun 04 Python
matplotlib 纵坐标轴显示数据值的实例
May 25 Python
Python中flatten( )函数及函数用法详解
Nov 02 Python
Python自定义一个类实现字典dict功能的方法
Jan 19 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
Django模板获取field的verbose_name实例
May 19 Python
Django实现文章详情页面跳转代码实例
Sep 16 Python
Anaconda的安装与虚拟环境建立
Nov 18 Python
Python一行代码实现自动发邮件功能
May 30 Python
教你怎么用PyCharm为同一服务器配置多个python解释器
May 31 Python
Python爬虫实战之爬取京东商品数据并实实现数据可视化
Jun 07 Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
利用Selenium添加cookie实现自动登录的示例代码(fofa)
Python基础之教你怎么在M1系统上使用pandas
python文件目录操作之os模块
May 08 #Python
You might like
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
Jquey拖拽控件Draggable使用方法(asp.net环境)
2010/09/28 Javascript
javaScript同意等待代码实现心得
2011/01/01 Javascript
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
js 判断一个元素是否在页面中存在
2012/12/27 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
js的参数有长度限制吗?发现不能超过2083个字符
2014/04/20 Javascript
JS实现自动切换文字的导航效果代码
2015/08/27 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
喜大普奔!jQuery发布 3.0 最终版
2016/06/12 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
利用D3.js实现最简单的柱状图示例代码
2016/12/09 Javascript
Angular2平滑升级到Angular4的步骤详解
2017/03/29 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
JS仿QQ好友列表展开、收缩功能(第一篇)
2017/07/07 Javascript
微信小程序滚动Tab实现左右可滑动切换
2017/08/17 Javascript
Vue.js实现实例搜索应用功能详细代码
2017/08/24 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
微信小程序checkbox组件使用详解
2018/01/31 Javascript
使用electron实现百度网盘悬浮窗口功能的示例代码
2018/10/24 Javascript
Layui 解决表格异步调用后台分页的问题
2019/10/26 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
Canvas波浪花环的示例代码
2020/08/21 HTML / CSS
Levi’s美国官网:美国著名的牛仔裤品牌
2016/08/19 全球购物
指针和引用有什么区别
2013/01/13 面试题
运动会广播稿400字
2014/01/25 职场文书
办公室主任岗位承诺书
2014/05/29 职场文书
企业员工集体活动方案
2014/08/17 职场文书
2014光棍节大学生联谊活动方案
2014/10/10 职场文书
2014感恩节演讲稿大全
2014/10/11 职场文书
2014年教育培训工作总结
2014/12/08 职场文书
学校教学工作总结2015
2015/05/19 职场文书
张丽莉观后感
2015/06/16 职场文书
2016秋季运动会开幕词
2016/03/04 职场文书
创业计划书之面包店
2019/09/17 职场文书