Python 中数组和数字相乘时的注意事项说明
作者:耒宇 发布时间:2023-02-15 19:38:48
标签:Python,数组,数字,相乘
注意事项
[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]]
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/u010037020/article/details/106219720


猜你喜欢
- 0. 学习目标栈和队列是在程序设计中常见的数据类型,从数据结构的角度来讲,栈和队列也是线性表,是操作受限的线性表,它们的基本操作是线性表操作
- 一、两表之间若有关联,你是否还在用主键进行关联? 比如现在有2张表,一张新闻栏目表,一张新闻表,现在两张表需要进行关联,我想大多数人的做法肯
- 由于python2和python3在部分语法上不兼容, 导致有人打趣道:"Python2和Python3是两门语言"对于
- // 涉及命名空间 using System; using System.Collections; using System.Compone
- 本文实例为大家分享了iscroll动态加载数据的具体代码,供大家参考,具体内容如下<div id="wrapper"
- public partial class CMS_DBDataContext { partial void OnCreated() { //
- 最近做个软件,用PyQT写的,在实现菜单栏点击弹出新窗口的时候严重被卡壳,发现用WxPython的思想和方式来做完全无法实现。PyQT的中文
- 前言之前做过pyqt的一个简单界面,在一个窗口(MainWindow)中实现一些操作;之前嫌麻烦没有去做多窗口和它们的切换功能。最近研究了下
- 本文实例讲述了python批量生成本地ip地址的方法。分享给大家供大家参考。具体分析如下:这段代码用于在本地计算机上生成本地ip地址绑定到网
- 在迭代中enumerate比range更能灵活,一般情况下尽量用erumerate,下面举例说明:先来看range的使用:city_list
- 本文实例讲述了JS基于面向对象实现的选项卡效果。分享给大家供大家参考,具体如下:中间过渡环节:把面向过程的程序,改写成面向对象的形式<
- 感觉上MySQL的字符串函数截取字符,比用程序截取(如PHP或JAVA)来得强大,所以在这里做一个记录,希望对大家有用。 函数: 1、从左开
- 硬币兑换问题:给定总金额为A的一张纸币,现要兑换成面额分别为a1,a2,....,an的硬币,且希望所得到的硬币个数最少。# 动态规划思想
- 查询语句的优化是SQL效率优化的一个方式,可以通过优化sql语句来尽量使用已有的索引,避免全表扫描,从而提高查询效率。最近在对项目中的一些s
- 先给出一个四人团对Decorator mode的定义:动态地给一个对象添加一些额外的职责。再来说说这个模式的好处:认证,权限检查,记日志,检
- 将单引号替换为双引号1、若对象为字符串str = "{'err_no': 0,'err_str':
- import导入包呈现灰色问题问题描述pycharm中单个py文件导入包时呈灰色,而别的文件却能正常显示,我按照CSDN博客上给的设置①右键
- 如何使用ADO 2x Command 对象读取数据?具体的读数据代码如下:Cmd = CType(EC.Example1
- 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。Python 自1.5版本起增加了re 模块,它提供 Pe
- 1、Python调用Windows命令打印文件Windows命令行打印文件使用print 命令,具体用法可使用help print查看。下面