精华内容
下载资源
问答
  • Python为例[x*x for x in range(10)]回报[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]该语法意味着“收集x*x的值,其中x是range(10)中包含的每个元素”当然你也可以写[42 for x in range(10)]那会给[42, 42, 42, 42, 42,...

    问题中的代码是一个嵌套的列表理解。以Python为例[x*x for x in range(10)]

    回报[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

    该语法意味着“收集x*x的值,其中x是range(10)中包含的每个元素”

    当然你也可以写[42 for x in range(10)]

    那会给[42, 42, 42, 42, 42, 42, 42, 42, 42, 42]

    (这与上面完全相同,只是要收集的表达式中没有使用值x)

    然而,“列表理解”本身就是一个表达式,所以它可以用于另一个外部列表理解。。。例如[[x*y for x in range(3)] for y in range(4)]

    会回来的[[0, 0, 0],

    [0, 1, 2],

    [0, 2, 4],

    [0, 3, 6]]

    在数值常量(或任何其他不可变)的特殊情况下,可以使用更简单的形式来构建矩阵:[[0] * 3 for x in range(4)]

    又回来了[[0, 0, 0],

    [0, 0, 0],

    [0, 0, 0],

    [0, 0, 0]]

    因为将列表乘以整数n会得到一个由连接的原始列表的n副本组成的列表(因此[0]*5返回[0, 0, 0, 0, 0])。

    注意,无论如何[[0] * 3] * 4

    不会做同样的事。原因是当仍然显示为[[0, 0, 0],

    [0, 0, 0],

    [0, 0, 0],

    [0, 0, 0]]

    在这种情况下,外部列表将由对同一行的4个引用组成,而不是4个独立行。这意味着在密码之后x = [[0] * 3] * 4

    x[0][0] = 9

    x包含[[9, 0, 0],

    [9, 0, 0],

    [9, 0, 0],

    [9, 0, 0]]

    而不是[[9, 0, 0],

    [0, 0, 0],

    [0, 0, 0],

    [0, 0, 0]]

    就像一个由独立行组成的实矩阵一样。

    展开全文
  • python二维数组初始化

    2020-07-23 15:31:41
    刚刚想生成一个二维数组,于是就在代码里这么写了: myList = [[0] * 3] * 4] # [[0,0,0], [0,0,0], [0,0,0], [0,0,0]] 但是当我修改第一个值myList[0][0]的时候,后面的myList[1][0]、myList[2][0]、myList[3][0]...

    刚刚想生成一个二维数组,于是就在代码里这么写了:

    myList = [[0] * 3] * 4]
    # [[0,0,0], [0,0,0], [0,0,0], [0,0,0]]
    

    但是当我修改第一个值myList[0][0]的时候,后面的myList[1][0]myList[2][0]myList[3][0]也一起发生了变化,这显然不符合一般人的预期 除非你真的想这么干

    myList[0][0] = 1
    print(myList)
    # [[1,0,0], [1,0,0], [1,0,0], [1,0,0]]
    

    出现这样现象的原因是在第二个乘号*是赋值了前一个[0] * 3这个数组对象的引用,而非值。而在python中,一位数组使用乘号*进行复制,就不存在问题,这是python特性导致的。

    因此正确的做法应该是:

    myList = [[0] * 3 for _ in range(4)]
    # [[0,0,0], [0,0,0], [0,0,0], [0,0,0]]
    
    myList[0][0] = 1
    myList[1][1] = 2
    print(myList)
    # [[1,0,0], [0,2,0], [0,0,0], [0,0,0]]
    
    

    这样,再次修改任意值的时候,不会导致其他值也发生变动。

    展开全文
  • python初始化二维矩阵

    千次阅读 2020-07-27 15:53:37
    n为列,m为行 matrix = [[0]*n for _ in range(m)]

    n为列,m为行

    matrix = [[0]*n for _ in range(m)]

    展开全文
  • python二维list的初始化

    千次阅读 2018-09-27 10:57:29
    原文:...python初始化list列表(1、2) 1.初始化递增的list: list1 = range(10) #print list1 #[0,1,2,...,9] 2.初始化每项为0的一数组: list2 = [0] * 5 #print list2 #[0,0,0,0,0] ...

    原文:https://www.cnblogs.com/zqifa/p/python-list.html

    python初始化list列表(1维、2维)

    1.初始化递增的list:

    list1 = range(10)
    #print list1
    #[0,1,2,...,9]

    2.初始化每项为0的一维数组:

    list2 = [0] * 5
    #print list2
    #[0,0,0,0,0]


    3.初始化固定值的一维数组:

    initVal = 1
    listLen = 5
    list3 = [ initVal for i in range(5)]
    #print list3
    #[1,1,1,1,1]
    list4 = [initVal] * listLen
    #print list4
    #[1,1,1,1,1]

    4.初始化一个5x6每项为0(固定值)的数组(推荐使用):

    multilist = [[0 for col in range(5)] for row in range(6)]

    5.初始化一个5x6每项为0(固定值)的数组

    multilist = [[0] * 5 for row in range(3)]

     

    看到了以上的方法,那初始化一个二维数组时,是否可以这样做呢:
    multi = [[0] * 5] * 3

    其实,这样做是不对的,因为[0] * 5是一个一维数组的对象,* 3的话只是把对象的引用复制了3次,比如,我修改multi[0][0]:
    multi = [[0] * 5] * 3
    multi[0][0] = 'Hello'
    print multi

    输出的结果将是:
    [['Hello', 0, 0, 0, 0], ['Hello', 0, 0, 0, 0], ['Hello', 0, 0,0, 0]]
    我们修改了multi[0][0],却把我们的multi[1][0],multi[2][0]也修改了。这不是我们想要的结果。

    但是如下写法是对的:
    multilist = [[0] * 5 for row in range(3)]
    multilist[0][0] = 'Hello'
    print multilist
    我们看输出结果:
    [['Hello', 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]]
    恩,没问题。但是,由于使用 * 的方法比较容易引起混淆导致Bug,所以还是推荐使用上面方法4,即:

    multilist = [[0 for col in range(5)] for row in range(6)]

    展开全文
  • Python实现二维数组输出为图片 对于二维数组,img_mask[[ 0 0 0 ..., 7 7 7][ 0 0 0 ..., 7 7 7][ 0 0 0 ..., 7 7 7]...,[266 266 266 ..., 253 253 253][266 266 266 ..., 253 253 253][266 266 266 ..., 253 253 ...
  • Python初始化一个m * n的二维list: list = [[0] * m for _ in range(n)] 不能直接用: b = [[0] * 5] * 5 因为这样相当于把[0]*5这个一维列表复制了5次,因此更改[0]*5中的任意一个元素,都会同时修改其他四...
  • c++使用vector创建二维0矩阵初始化) 一、前言 c++真的是又爱又恨的一门语言,本人是一名python程序员但是因工作需求不得不投入到c++的大军中,逐渐偏离人生苦短我用python的初衷,唠叨完毕开始正题。 最近在做一...
  • Python中numpy矩阵合并和初始化

    千次阅读 2018-08-22 19:52:36
    1、numpy中两个矩阵的合并 1)理论 np.r_[up, down],把两矩阵上下相加,按列连接两个矩阵,要求列数相等。 np.c_[left, right],把两矩阵左右... # up和down都是二维矩阵 up = np.array([[1, 2, 3], [4, 5, 6], [...
  • import numpy as np zero = np.zeros(5) # 一维的长度为5的矩阵或者说向量 ...zero2 = np.zeros((5,5)) # 二维矩阵, 5 * 5 i1 = np.identity(5) # 5 * 5 单位矩阵 identity和zeros在二维时的初始化不太一样。
  • 注意,Python初始化一个二维数组 不能用 [[0] * col] * row,这样每行创建的是 [0]*col的引用!!!!!! 使用 [[0] * col for _ in range(row)]
  • 当我们采用s=[[0]*3]*2初始化一个数组,然后对s[0][0]进行赋值,改变的是第一列所有的值。因为用s = [[0]*3]*2 初始化数组,他表示的是指向这个列表的引用,所以当你修改一个值的时候,整个列表都会修改。 换一种...
  • Python 是一种高级的,动态的,多泛型的编程语言。接下来通过本文给大家介绍Python Numpy 数组的初始化和基本操作,感兴趣的朋友一起看看吧
  • python初始化二维数组

    万次阅读 2012-06-04 22:59:53
    转自:... Python初始化一个5 x 3每项为0的数组,最好方法是: multilist = [[0 for col in range(5)] for row in range(3)] 我们知道,为了初始化一个一数组,我们可以这样做: alis
  • 今天小编就为大家分享一篇Python numpy.zero() 初始化矩阵实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 正确的方法 cols= 3 rows = 2 memo = [[1] * m for i in range(n) ] 下面这种做法是错误的 memo = [[1] * m ] * n 这会导致 memo[0] == memo[1],改变其中一个子数组的值,另一个子数组也会一起变 ...
  • Python输入二维数组方法前不久对于Python输入二维数组有些不解,今日成功尝试,记以备忘。这里以输入1-9,3*3矩阵为例n=int(input())line=[[0]*n]*nfor i in range(n):line[i]=input().split(' ')print(line)使用数据...
  • 稀疏矩阵的格式存储矩阵的一般方法是采用二维数组,其优点是可以随机地访问每一个元素,因而能够容易实现矩阵的各种运算。 对于稀疏矩阵,采用二维数组的...与csr格式相比唯一的不同点是indptr和indices数组的定义,...
  • alist = [0] * 5没错,那我们初始化一个二维数组时,是否可以这样做呢: multi = [[0] * 5] * 3其实,这样做是不对的,因为[0] * 5是一个一维数组的对象,* 3的话只是把对象的引用复制了3次,比如,我修改...
  • python 二维列表(数组)赋值问题

    万次阅读 多人点赞 2018-09-11 17:36:21
    当我们使用arr = [[0]*5]*5 初始化一个二维数组时,会得到一个5*5的数组, In [1]: arr = [[0]*5]*5 In [2]: arr Out[2]: [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0,...
  • python怎么输入一个数组矩阵下面是基于python3.4的 这样子: 1 2 3 4 import numpy as np arr = [1,2,3,4,5,6,7,8,9] matrix_a = np.array(arr) print(matrix_a)在python中,如何通过键盘输入,给矩阵的每一个元想法...
  • python scipy 稀疏矩阵详解

    万次阅读 多人点赞 2019-08-25 16:40:38
    文章目录稀疏矩阵格式coo_matrixcsr_matrixcsc_matrixlil_matrixdok_matrixdia_matrixbsr_matrix实用函数经验总结 稀疏矩阵格式 coo_matrix   coo_matrix是最简单的稀疏矩阵存储方式,采用三元组(row, col, data)...
  • 做机器学习实验K-means时,我想把每个聚类(cluster)当成每个...于是我在写程序时先初始化一个三数组clusters,第一代表聚类的个数,第类代表每一类的样本点个数,第三类代表每个点的特征个数。 最初,我...
  • 前言:今天为大家带来的内容是,详解:python numpy矩阵的创建与数据类型!...使用python中的方法构造矩阵- 生成一维矩阵# 使用python自带的range()方法生成一个矩阵a = list(range(100))#ran...
  • 002pc.com认为此文章对《python把多个一维数组变成二维数组python爬取并计算成绩》说的很在理。# -*- coding: utf-8 -*-import urllibimport urllib2import cookielibimport reimport string#绩点运算class SDU:#类...
  • 2.numpy初始化二维数组 a = np.array([[1,2,3]]); b = np.array([[1],[2],[3]]); print a.shape//(1,3) print b.shape//(3,1) 注意(3,)和(3,1)的数组是不一样的,前者是一维数组,后者是二维数组。 拼接 ...
  • 在用python定义一个二维数组时可以有list和numpy.array两种方式,看了几篇python中二维数组的建立的博客发现大多都是建立的初始化二维数组,而我需要通过文件读取得到的是字符串,再把字符串转换为二维数组,找不...
  • 二维数组 dp[n][2]初始化 方法一: 越在前面的维度,总体上是越出现在后面 dp=[[0 for j in range(2)]for i in range(n)] 方法二: dp=[[0,0] for _ in range(n)]
  • 1. 使用输入值初始化列表 nums = [] rows = eval(input("请输入行数:")) columns = eval(input("请输入列数:")) for row in range(rows): nums.append([]) for column in range(columns): num...
  • #Python# 二维数组的定义、使用的几种方法

    万次阅读 多人点赞 2019-05-16 16:20:36
    #Python# 二维数组的定义、使用的几种方法通常的困扰1、先介绍最简单的一种方式2、再介绍最常见的一种方式3、最后介绍最暴力直观的一种方式 通常的困扰 之前对Python里面创建、使用二维数组也很懵,于是也上网查了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,549
精华内容 8,619
关键字:

python二维矩阵初始化

python 订阅