【Python】List和tuple的区别

# 转为numpy就解决了
content = np.array(content)
print(content.shape)
print(content)
# 因为列表可以存放不同类型的数据,因此列表中每个元素的大小可以相同,也可以不同,
# 也就不支持一次性读取一列,即使是对于标准的二维数字列表

>>> a=[[1,2,3],[4,5,6]]
>>> a[0]    #取一行
[1, 2, 3]
>>> a[:,0]  #尝试用数组的方法读取一列失败
TypeError: list indices must be integers or slices, not tuple

# 我们需要用列表解析的方法读取一列:

>>> b=[x[0] for x in a]
>>> print(b)
[1, 4]
 

# 而对于数组,可以直接读取:

>>> import numpy as np
>>> a=np.array([[1,2,3],[4,5,6]])
>>> a[:,0]
array([1, 4])

Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

另一种有序列表叫元组:tuple。tuple和list非常类似,但是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的每一个元素本身也不能变。


  • 如何return多个值?

函数的return 语句只能返回一个值,可以是任何类型。

因此,我们可以“返回一个 tuple类型,来间接达到返回多个值 ”。

  • python获得list的维度

list需要转换成numpy数组获得维度

import numpy as np
 
L = [[1,1,1],[2,2,2],[3,3,3],[4,4,4]]
L = np.array(L)
print(L.shape)
 
print(L.shape[0]) #获得一维维度
print(L.shape[1]) #获得二维维度
  • numpy数组与list之间的转换

a=([3.234,34,3.777,6.33])
#a为python的list类型
#将a转化为numpy的array:  
np.array(a)
array([  3.234,  34.   ,   3.777,   6.33 ])
# 将a转化为python的list
a.tolist()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值