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 不同对象比较大小示例探讨
Aug 21 Python
Python 正则表达式(转义问题)
Dec 15 Python
python读取csv文件并把文件放入一个list中的实例讲解
Apr 27 Python
Python装饰器基础概念与用法详解
Dec 22 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
Python GUI编程 文本弹窗的实例
Jun 11 Python
打包python 加icon 去掉cmd黑窗口方法
Jun 24 Python
python爬虫 2019中国好声音评论爬取过程解析
Aug 26 Python
Python应用自动化部署工具Fabric原理及使用解析
Nov 30 Python
python palywright库基本使用
Jan 21 Python
Python实现粒子群算法的示例
Feb 14 Python
python 高阶函数简单介绍
Feb 19 Python
python 实现的截屏工具
python实现的人脸识别打卡系统
Python词云的正确实现方法实例
python神经网络编程之手写数字识别
利用Selenium添加cookie实现自动登录的示例代码(fofa)
Python基础之教你怎么在M1系统上使用pandas
python文件目录操作之os模块
May 08 #Python
You might like
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
CI框架集成Smarty的方法分析
2016/05/17 PHP
php源码之将图片转化为data/base64数据流实例详解
2016/11/27 PHP
PHP遍历目录文件的常用方法小结
2017/02/03 PHP
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
理解Javascript闭包
2013/11/01 Javascript
JS小功能(setInterval实现图片效果显示时间)实例代码
2013/11/28 Javascript
jquery对单选框,多选框,文本框等常见操作小结
2014/01/08 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
详解react-router如何实现按需加载
2017/06/15 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
微信小程序MUI导航栏透明渐变功能示例(通过改变rgba的a值实现)
2019/01/24 Javascript
vue组件之间的数据传递方法详解
2019/04/19 Javascript
vue自定义指令实现仅支持输入数字和浮点型的示例
2019/10/30 Javascript
基于better-scroll 实现歌词联动功能的代码
2020/05/07 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
vue3.0中使用element的完整步骤
2021/03/04 Vue.js
python通过elixir包操作mysql数据库实例代码
2018/01/31 Python
python sort、sort_index方法代码实例
2019/03/28 Python
python使用beautifulsoup4爬取酷狗音乐代码实例
2019/12/04 Python
利用matplotlib实现根据实时数据动态更新图形
2019/12/13 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
python GUI库图形界面开发之PyQt5多线程中信号与槽的详细使用方法与实例
2020/03/08 Python
remote接口和home接口主要作用
2013/05/15 面试题
企业员工培训感言
2014/02/26 职场文书
农村结婚典礼司仪主持词
2014/03/14 职场文书
初一新生军训方案
2014/05/22 职场文书
佛光寺导游词
2015/02/10 职场文书
任命书怎么写
2015/03/02 职场文书
文艺晚会开场白
2015/05/29 职场文书
赤壁观后感(2)
2015/06/15 职场文书
诚信考试主题班会
2015/08/17 职场文书
民事纠纷协议书
2016/03/23 职场文书
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL