• 最近遇到numpy.zero()这个函数时有几个疑惑地方： 1、想生成5×2阶零矩阵时为什么不是zeros(5,2)，而是多了个括号zeros((5,2))? 2、查到帮助文档示例zeros((5,))=array([ 0., 0., 0., 0., 0.])，表示...
最近遇到numpy.zero()这个函数时有几个疑惑的地方：
1、想生成5×2阶的零矩阵时为什么不是zeros(5,2)，而是多了个括号zeros((5,2))?
2、查到帮助文档的示例zeros((5,))=array([ 0.,  0.,  0.,  0.,  0.])，表示疑惑，（5，）代表什么呢？后面，省略了什么？0？1？
1.从帮助文档得到答案：第一个参数表示矩阵的shape,如果是zeros(5,2)则给两个参数赋值了shape=5, dytpe=2, 这是错误的，（5,2）代表一个参数而已。
help(numpy.zeros)
Help on built-in function zeros in module numpy.core.multiarray:
zeros(...)
zeros(shape, dtype=float, order='C')

Return a new array of given shape and type, filled with zeros.

Parameters
----------
shape : int or sequence of ints
Shape of the new array, e.g., (2, 3) or 2.
dtype : data-type, optional
The desired data-type for the array, e.g., numpy.int8.  Default is
numpy.float64.
order : {'C', 'F'}, optional
Whether to store multidimensional data in C- or Fortran-contiguous
(row- or column-wise) order in memory.

Returns
-------
out : ndarray
Array of zeros with the given shape, dtype, and order.

Examples
--------
np.zeros(5)
array([ 0.,  0.,  0.,  0.,  0.])

np.zeros((5,), dtype=np.int)
array([0, 0, 0, 0, 0])

np.zeros((2, 1))
array([[ 0.],
[ 0.]])

s = (2,2)
np.zeros(s)
array([[ 0.,  0.],
[ 0.,  0.]])

np.zeros((2,), dtype=[('x', 'i4'), ('y', 'i4')]) # custom dtype
array([(0, 0), (0, 0)],
dtype=[('x', '<i4'), ('y', '<i4')])
2、继续查帮助文档
help(numpy.zeros(5,))
Help on ndarray object:
class ndarray(__builtin__.object)
|  ndarray(shape, dtype=float, buffer=None, offset=0,
|          strides=None, order=None)
|
|  An array object represents a multidimensional, homogeneous array
|  of fixed-size items.  An associated data-type object describes the
|  format of each element in the array (its byte-order, how many bytes it
|  occupies in memory, whether it is an integer, a floating point number,
|  or something else, etc.)
|
|  Arrays should be constructed using array, zeros or empty (refer
|  to the See Also section below).  The parameters given here refer to
|  a low-level method (ndarray(...)) for instantiating an array.
|
|  For more information, refer to the numpy module and examine the
|  the methods and attributes of an array.
|
|  Parameters
|  ----------
|  (for the __new__ method; see Notes below)
|
|  shape : tuple of ints
|      Shape of created array.
|  dtype : data-type, optional
|      Any object that can be interpreted as a numpy data type.
|  buffer : object exposing buffer interface, optional
|      Used to fill the array with data.
|  offset : int, optional
|      Offset of array data in buffer.
|  strides : tuple of ints, optional
|      Strides of data in memory.
|  order : {'C', 'F'}, optional
|      Row-major (C-style) or column-major (Fortran-style) order.
|
..................
这时才发现zeros的第一个参数shape是由整数或tuple表示，这时意识到（5，）表示的应该是tuple，于是查了tuple的用法及注意事项就明白了，答案在下面标红标粗加大，简单理解（5，）就代表5，随便复习下tuple用法：

tuple

另一种有序列表叫元组：tuple。tuple和list非常类似，但是tuple一旦初始化就不能修改，比如同样是列出同学的名字：
>>> classmates = ('Michael', 'Bob', 'Tracy')

现在，classmates这个tuple不能变了，它也没有append()，insert()这样的方法。其他获取元素的方法和list是一样的，你可以正常地使用classmates[0]，classmates[-1]，但不能赋值成另外的元素。
不可变的tuple有什么意义？因为tuple不可变，所以代码更安全。如果可能，能用tuple代替list就尽量用tuple。
tuple的陷阱：当你定义一个tuple时，在定义的时候，tuple的元素就必须被确定下来，比如：
>>> t = (1, 2)
>>> t
(1, 2)

如果要定义一个空的tuple，可以写成()：
>>> t = ()
>>> t
()

但是，要定义一个只有1个元素的tuple，如果你这么定义：
>>> t = (1)
>>> t
1

定义的不是tuple，是1这个数！这是因为括号()既可以表示tuple，又可以表示数学公式中的小括号，这就产生了歧义，因此，Python规定，这种情况下，按小括号进行计算，计算结果自然是1。
所以，只有1个元素的tuple定义时必须加一个逗号,，来消除歧义：
>>> t = (1,)
>>> t
(1,)

Python在显示只有1个元素的tuple时，也会加一个逗号,，以免你误解成数学计算意义上的括号。
最后来看一个“可变的”tuple：
>>> t = ('a', 'b', ['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])

这个tuple定义的时候有3个元素，分别是'a'，'b'和一个list。不是说tuple一旦定义后就不可变了吗？怎么后来又变了？
别急，我们先看看定义的时候tuple包含的3个元素：

当我们把list的元素'A'和'B'修改为'X'和'Y'后，tuple变为：

表面上看，tuple的元素确实变了，但其实变的不是tuple的元素，而是list的元素。tuple一开始指向的list并没有改成别的list，所以，tuple所谓的“不变”是说，tuple的每个元素，指向永远不变。即指向'a'，就不能改成指向'b'，指向一个list，就不能改成指向其他对象，但指向的这个list本身是可变的！
理解了“指向不变”后，要创建一个内容也不变的tuple怎么做？那就必须保证tuple的每一个元素本身也不能变。

展开全文
• Python tuple 基本用法（在会 Python list 前提下）1. list 和 tuple 区别2. 例子 1. list 和 tuple 区别 list: 有序，可以增删改查。表示：[] tuple: 有序，可以查，不可增删改。表示：(,) ...
Python 中 tuple 的基本用法（在会 Python 中 list 的前提下）1. list 和 tuple 的区别2. 例子3. tuple 的基本方法
1. list 和 tuple 的区别

list: 有序的，可以增删改查。表示：[]
tuple: 有序的，可以查，不可增删改。表示：(,)

强制性：list 后面不加逗号，tuple 后面加上逗号

2. 例子

list 和 tuple 是优先级是一样的！

由上面的例子可以得知：list 与 tuple 同级，实行 “就近原则”

3. tuple 的基本方法
count(self, *args, **kwargs)
index(self, *args, **kwargs)


例子：


展开全文
• Python中Tuple和List区别与用法 1.语法上差别 someTuple = (1,2) someList = [1,2] 2. 数据size上差别 a = tuple(range(1000)) b = list(range(1000)) a.__sizeof__() # 8024 b.__sizeof__() # 9088 由于...
Python中Tuple和List的区别与用法
1.语法上的差别
someTuple = (1,2)
someList  = [1,2]

2. 数据size上的差别
a = tuple(range(1000))
b = list(range(1000))

a.__sizeof__() # 8024
b.__sizeof__() # 9088

由于tuples的操作拥有更小的size，也就意味着tuples在操作时相比list更快，当数据足够大的时候tuples的数据操作性能更优。
3. 可执行的操作
b    = [1,2]
b[0] = 3       # [3, 2]

a    = (1,2)
a[0] = 3       # Error

tuples具有immutable的属性，意味着tuples内的元素一旦建立就无法更改、删除、排序，然而我们还是可以向list和tuples添加数据的。
a     = (1,2)
b     = [1,2]

id(a)          # 140230916716520
id(b)          # 748527696

a   += (3,)    # (1, 2, 3)
b   += [3]     # [1, 2, 3]

id(a)          # 140230916878160
id(b)          # 748527696

4. 用法
由上述可知，tuples是immutable，list是mutable的，所以我们可以将tuples用作dictionary的key，但是list不可以
a    = (1,2)
b    = [1,2]

c = {a: 1}     # OK
c = {b: 1}     # Error

因为tuples不可变，所以代码更安全。如果可能，能用tuple代替list就尽量用tuple。
5. tuple和list存储的数据特性
（基于此篇文章）
除了上述区别和用法以外，tuples和list还有一个区别是tuples通常是存储异质元素（heterogeneous）的数据结构，而list通常存储同质元素（homogeneous）的数据结构。
详细解释就是：
Tuples 通常存储的是一连串的不同种类的事务，但是我们将他们当做一个耦合的整体来处理（比如我们可以把键盘、鼠标、显示器、主机存储在一个tuples里，这些元素都是不同种类的元素，但是放在一起处理时可当作一个计算机硬件系统元素来看待，而一旦定义了这个系统，就不能随意更改已有的元素）
List 通常存储的是一连串的相同种类的事务，所以我们可以把list中的每个元素都当做一个独立的个体来处理（也就是mutable的思想，例如list中存储了一些随机整数，他们拥有相同的属性（都是整数），但各自独立（没有任何相关性），我们可以单独的更改list中任何元素而不影响整体的数据结构）
最后感谢阅读！！！


展开全文
• python中list和tuple的用法及区别

万次阅读 多人点赞 2017-12-06 16:32:06
list和tuple的用法及区别
1、list-列表
list是一种有序的集合，可以随时添加和删除其中的元素
列出数组num中的所有元素：

访问list中的元素，索引从0开始，0为第一个元素，当索引超出范围（本例索引大于9时）会报错，索引不能越界，最后一个元素      的索引是len(num)-1（len()是干嘛的？你猜）

如果要取最后一个元素，除了计算索引位置，还可以用-1做索引直接取到最后一个元素（倒数第一）

使用append()可以在list的尾部添加元素

使用insert()可以将元素插入添加到指定位置

使用pop()可以删除list最后一个元素
使用pop(i)其中i是索引号，可以删除指定位置的元素

想要替换某个元素，可以直接给对应索引号位置的元素赋值

list里面的元素类型可以不同（上面的举例就可以看出来啦），不仅如此，它的元素还可以是另一个list

2、tuple
tuple是一种有序列表，它和list非常相似，但是（但是前面的话也不都是废话）
tuple一旦初始化就不能修改，而且没有append() insert()这些方法，可以获取元素但不能赋值变成另外的元素

如果要定义空的tuple可以写成()
如果定义1个元素呢？(1)这样写？
nonono
定义一个元素要这样（1，）要加个逗号哦
(1)这个代表的数字1，是个数

tuple要如何改变里面的元素呢？

其实不是tuple可以改变，而是tuple指向的list中的元素可以改变
tuple 用( )
lis    t用[ ]


展开全文
• 元组大小和元组中的元素都是只读、不可变。 元组可以存储不同数据类型数据。 创建元组 【语法】 变量=（数据1，数据2，…） 代码示例 #将元组第3个数据修改为6200并在控制台输出 salary=(1000,5200,...
• 2、访问list中的元素，索引从0开始，0为第一个元素，当索引超出范围会报错，索引不能越界，最后一个元素 索引是len(num)-1 3、如果要取最后一个元素，除了计算索引位置，还可以用-1做索引直接取到最后一个元素 ...
• 列表中的元素可以进行增加和删除操作，但是，元组中的元素不能进行修改 c）元组和列表相同点： 都是一种容器，都可以同时存储不同类型数据 （2）元组创建 创建空列表：list1 = [] 创建有元素列表：list...
• 偶然见到以下用法 *tuple 和 **dict作为参数, 经过查询,才知道这是一种简要写法, 见下面例子 *tuple def foo(x, y): print(x, y) &gt;&gt;t = (1, 2) &gt;&gt;foo(*t) 1 2 **dict def foo(x, ...
• 以下内容主要摘抄博客：... 四、tuple的方法： 1、count()：查找元素在tuple出现的次数。 2.index()：查找元素的第一个索引值。
• Python3 Tuple

2020-02-15 10:09:03
Tuple ...注：如果你读过我上一篇博客 Python3 List , 想必你对序列类型基本用法有了一定了解，因此，我不想对元组进行过多讲解，直接上例子。 1. 索引 >>> my_tuple = ("hello", "...
• list 1.定义： 字面意思就是一个集合，在Python中List中元素用中括号[]来表示，可以这样定义一个List: ...Python中的List是有序，所以要访问List话显然要通过序号来访问，就像是数组下标一样，一样是下...

...

python 订阅