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自动化构建工具scons使用入门笔记
Mar 10 Python
简单掌握Python中glob模块查找文件路径的用法
Jul 05 Python
python中pandas.DataFrame排除特定行方法示例
Mar 12 Python
python将回车作为输入内容的实例
Jun 23 Python
对python3标准库httpclient的使用详解
Dec 18 Python
python将字符串转换成json的方法小结
Jul 09 Python
python中下标和切片的使用方法解析
Aug 27 Python
Python获取一个用户名的组ID过程解析
Sep 03 Python
Python内置方法实现字符串的秘钥加解密(推荐)
Dec 09 Python
python如何使用Redis构建分布式锁
Jan 16 Python
如何在Python对Excel进行读取
Jun 04 Python
详细分析Python可变对象和不可变对象
Jul 09 Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
利用Selenium添加cookie实现自动登录的示例代码(fofa)
Python基础之教你怎么在M1系统上使用pandas
python文件目录操作之os模块
May 08 #Python
You might like
小偷PHP+Html+缓存
2006/11/25 PHP
不同浏览器对回车提交表单的处理办法
2010/02/13 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
AngularJS iframe跨域打开内容时报错误的解决办法
2015/01/26 Javascript
JavaScript实现Iterator模式实例分析
2015/06/09 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
javascript实现消灭星星小游戏简单版
2016/11/15 Javascript
详解自动生成博客目录案例
2016/12/09 Javascript
Vue 2.0学习笔记之使用$refs访问Vue中的DOM
2017/12/19 Javascript
JavaScript的Object.defineProperty详解
2018/07/09 Javascript
JavaScript常见继承模式实例小结
2019/01/11 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
vue+elementUI动态增加表单项并添加验证的代码详解
2020/12/17 Vue.js
[49:59]KG vs Mineski 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python登录豆瓣并发帖的方法
2015/07/08 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
详解python string类型 bytes类型 bytearray类型
2017/12/16 Python
Python FTP两个文件夹间的同步实例代码
2018/05/25 Python
python调用staf自动化框架的方法
2018/12/26 Python
python递归调用中的坑:打印有值, 返回却None
2020/03/16 Python
HTML5 progress和meter控件_动力节点Java学院整理
2017/07/06 HTML / CSS
英国豪华文具和皮具配件经典老品牌:Smythson(斯迈森)
2018/04/19 全球购物
德国家具购物网站:Möbel Höffner
2019/08/26 全球购物
卡拉威高尔夫官方网站:Callaway Golf
2020/09/16 全球购物
简单说下OSPF的操作过程
2014/08/13 面试题
计算机科学与技术应届生求职信
2013/11/07 职场文书
学校岗位设置方案
2014/01/16 职场文书
单位实习证明怎么写
2014/01/17 职场文书
交通事故检查书范文
2014/01/30 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
快递员岗位职责
2014/09/12 职场文书
浅析Django接口版本控制
2021/06/26 Python
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL
MySQL数据库如何使用Shell进行连接
2022/04/12 MySQL
python神经网络学习 使用Keras进行回归运算
2022/05/04 Python