python有几种容器_Python中几种内置的容器(Containers)类型:列表、字典、集合和元组的比较和该注意的点...

之所以称他们为容器类型是因为他们不像基本类型那样只有一种简单类型的数据,而是可以包含其他类型的数据,numpy的计算速度比原生Python快的一个很重要的原因就是numpy中的数组(类似于Python中的嵌套列表)元素类型都是一致的。

python照片那个的list和numpy中的数组的元素都是在[]中,但是list每个元素之间都有逗号,而数组元素没有,两者都可用负数索引查找。

列表和元组时有序列表,可以通过索引选取其中的元素,集合是无序列表,导出的顺序不等于显示顺序。

根据索引访问列表和元组中的元素时,索引可以为负数:

>>> classmates = ['Michael', 'Bob', 'Tracy']

>>> classmates

['Michael', 'Bob', 'Tracy']

>>> classmates[0]

'Michael'

>>> classmates[1]

'Bob'

>>> classmates[2]

'Tracy'

>>> classmates[-1]

'Tracy

定义一个只有1个元素的tuple时,只有1个元素的tuple定义时必须加一个逗号以消除歧义,否则,编译器会误解成数学计算意义上的括号:

>>> t = (1)

>>> t

1

下面才是一个元素的元组的正确定义方法:

>>> t = (1,)

>>> t

(1,)

说元组不可变是指它的索引指向不变,但若索引所指的元素也是个容器类型(比如列表类型),那这个列表中的元素是可以变得:

>>> t = ('a', 'b', ['A', 'B'])

>>> t[2][0] = 'X'

>>> t[2][1] = 'Y'

>>> t

('a', 'b', ['X', 'Y'])

元组在很多方面类似于列表; 其中一个最重要的区别是元组可以用作字典中的键和集合的元素,而列表则不能(因为tuple不可变而list可变,一个可变的键无法定位正确的value):

d = {(x, x + 1): x for x in range(10)} # Create a dictionary with tuple keys

t = (5, 6) # Create a tuple

print(type(t)) # Prints ""

print(d[t]) # Prints "5"

print(d[(1, 2)]) # Prints "1"

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集等操作:

>>> s1 = set([1, 2, 3])

>>> s2 = set([2, 3, 4])

>>> s1 & s2

{2, 3}

>>> s1 | s2

{1, 2, 3, 4}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值