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实现的防DDoS脚本
Feb 08 Python
Python访问MySQL封装的常用类实例
Nov 11 Python
Django与遗留的数据库整合的方法指南
Jul 24 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
python学习笔记之列表(list)与元组(tuple)详解
Nov 23 Python
python绘制条形图方法代码详解
Dec 19 Python
Python+tkinter使用80行代码实现一个计算器实例
Jan 16 Python
利用Python yagmail三行代码实现发送邮件
May 11 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
Python PIL读取的图像发生自动旋转的实现方法
Jul 05 Python
Python Tkinter实例——模拟掷骰子
Oct 24 Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
利用Selenium添加cookie实现自动登录的示例代码(fofa)
Python基础之教你怎么在M1系统上使用pandas
python文件目录操作之os模块
May 08 #Python
You might like
Yii框架中memcache用法实例
2014/12/03 PHP
ThinkPHP中order()使用方法详解
2016/04/19 PHP
PHP与SQL语句常用大全
2016/12/10 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
javascript 二维数组的实现与应用
2010/03/16 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
JS函数重载的解决方案
2014/05/13 Javascript
浏览器中url存储的JavaScript实现
2015/07/07 Javascript
js简单实现标签云效果实例
2015/08/06 Javascript
Bootstrap基本插件学习笔记之折叠(22)
2016/12/08 Javascript
jQuery实现字符串全部替换的方法【推荐】
2017/03/09 Javascript
bootstrap实现的自适应页面简单应用示例
2017/03/09 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
js中apply和call的理解与使用方法
2019/11/27 Javascript
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python最基本的输入输出详解
2015/04/25 Python
全面理解Python中self的用法
2016/06/04 Python
python单例模式实例解析
2018/08/28 Python
idea创建springMVC框架和配置小文件的教程图解
2018/09/18 Python
python基础知识(一)变量与简单数据类型详解
2019/04/17 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
详解Python中第三方库Faker
2020/09/25 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
巴西24小时在线药房:Drogasil
2020/06/20 全球购物
求职简历的自我评价
2014/01/31 职场文书
2014年元旦联欢会活动策划方案
2014/02/16 职场文书
党员岗位承诺书
2014/03/25 职场文书
中医学专业自荐信范文
2014/04/01 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
开展党的群众路线教育实践活动个人对照检查材料
2014/11/05 职场文书
圣诞晚会主持词开场白
2015/05/28 职场文书
python tkinter Entry控件的焦点移动操作
2021/05/22 Python
Mysql中存储引擎的区别及比较
2021/06/04 MySQL