Python——基本数据结构

列表

列表是Python里的内建的类型之一,可以添加和删除其中的元素。如>>>role = [['Sam',33],['Dean'],37]],可以列表中包含列表,同一列表中包含不同类型的数据。下面介绍列表的一些通用操作,关于list的其他用法,可以通过help(list)查看。

基本操作

  • 索引分片
>>>a = [2,13,12,41,17,23]
>>>a[1]                        #列表从0开始
13
>>>a[-1]                       #索引为负,从列表末开始
23
>>>a[2:4]                      #分片操作
[12,41]
>>>a[:3]
[2,13,12]
>>>a[1:6:2]                    #分片步进
[12,41,23]
>>>a[6::-2]                    #步进为负,从列表尾部开始取
[23,41,13]
  • 列表相加
>>>[2,11,3] + [12,31,4]
[2,11,3,12,31,4]
  • 乘法
>>>[1,2] * 3
[1,2,1,2,1,2]
  • 删除元素
>>>num = [1,2,3,4]                #删除单个元素
del num[2]
>>>num
[1,2,4]
>>>num = [1,2,3,4]                #分片删除
del num[2:]
>>>num
[1,2]
  • 分片赋值
>>>name = list('Python')
>>>name[1:] = list('erl')         #可以替换原有的值
>>>name                           #也可以在原有列表中插入值
['P','e','r','l']                 #也可以删除元素(分片赋空值)

列表方法

呃,关于方法和函数的区别,可以这么说函数是通用的,大家都可以用,而方法是仅用于某一具体对象的函数。一般方法是这么调用的对象.方法(参数)

  • append
>>>num = [1,2,3]             #追加元素至末尾
>>>num.append(4)
>>>num
[1,2,3,4]
  • count
>>>[3,[1,41],1,2,3,1].count(1)
2                            #复合列表统计出现次数,只算最外面一层
  • enxtend
>>>a = [1,2,3]               #追加多个值至末尾
>>>b = [4,5,6]
>>>a.extend(b)
>>>a
[1,2,3,4,5,6]
  • index
>>>a = [1,2,3,2,4]
>>>a.index(2)                #L.insert(value,[start,[stop]])
1                            #返回某个值的第一个匹配项的索引
  • insert
>>>a = [1,2,4]
>>>a.insert(2,3)          #L.insert(index,object)
>>>a                      #在列表任何位置插入元素,且插入索引(index)前
[1,2,3,4]
  • pop
>>>a = [1,2,3]           #L.pop(index)  缺省是最后一个元素
>>>a.pop()               #与添加插入操作相反
  • remove
>>>a = [1,2,3,2,11]       #移除列表中的第一个匹配项
>>>a.remove(2)
>>>a
[1,3,2,11]
  • reverse
>>>a = [1,2,3]
>>>a.reverse()
>>>a
[3,2,1]
  • sort
>>>a = [5,1,2,6,8]
>>>a.sort()
>>>a
[1,2,5,6,8]

以上的这些操作,有的并不会改变原列表的值,如连接操作(a + b),乘法([1,2] * 3)。


元组

元组(tuple)与列表一样也是一种序列,两者形式上的差别仅仅是列表为[1,2,3],而元组为(1,2,3)。实际使用中,元组也仅仅比列表多了不可更改的特性。

对于元组的基本操作,与前面提到的几种列表的操作完全一样(除了会改变元素的操作)。

>>>(1,2,3)              #创建元组
(1,2,3)
>>>a = 1,               #创建单个元素的元组,只需在末尾加上逗号即可
>>>type(a)
(type 'tuple')

字典

这是一种通过名字(键,key)来寻找值的数据结构。类似于字典的构造,通过字的拼音首字母来寻找对于的一类字。
注意

  • 键的类型必须是不可变的类型,如字符串、元组。

  • 字典的<键,值>对,并不一定按照你创建时的次序存储的,它是随机的。

创建字典

>>>d = {'a':('about','at'),'b':('but','blue')}
>>>d['a']           #整个字典由大括号包起来,字典由键与其对应的值组成
('about','at')      #键-值间用冒号隔开,单个键可以对于多个值

基本操作

d[k]            #返回关联到键k上的值
d[k] = v        #将值v关联到键k上
del d[k]        #删除键为k的项
k in d          #检查字典中是否有键为k的项

字典方法

  • clear
>>>d = {'a':['about','at'],'b':['but','blue']}
>>>d.clear()                       #用于清空整个字典
>>>d
{}
  • copy
>>>d = {'a':['about','at'],'b':['but','blue']}
>>>y = d.copy()
>>>y
{'a':['about','at'],'b':['but','blue']}

#这里要注意
>>>y['a'] = ['abandon]
>>>y['b'].remove('but')
>>>y
{'a':['abandon'],'b':['blue']} #替换副本的值并不会影响原来的字典
>>>x                           #但是修改某个值,原始字典的值也会改变
{'a':['about','at'],'b':['blue']}
  • items和iteritems
>>>{'a':['about','at'],'b':['but','blue']}
>>>d.items()             #以列表的形式返回字典的<键,值>对
[('a',['about','at']),('b',['but','blue')]
>>>{'a':['about','at'],'b':['but','blue']}
>>>y = a.iteritems()     #与items的作用差不多,只不过返回的是一个迭代器
>>>y
<dictionary-itemiterator object at 0x0000000002758F48>
>>>list(y)
[('a',['about','at']),('b',['but','blue')]

与这两个作用类似的还有,keys和iterkeys,values和itervalues。

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 中国大陆许可协议进行许可。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值