首页 > 代码库 > Python数据结构之列表、元组及字典

Python数据结构之列表、元组及字典

  一位大牛Niklaus Wirth曾有一本书,名为《Algorithms+Data Structures=Programs》,翻译过来也就是算法+数据结构=程序。而本文就是介绍一下Python中内建的三种数据结构----列表、元组以及字典。

  列表

  列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目。

  1.list函数

  因为字符串不能像列表一样被修改,所以有时候根据字符串创建列表就很有用了,list可以实现这个操作: 

1 >>>list("Hello")2 [He.l.l.o]

  PS:可以用一下方法将一个由字符组成的列表转换为字符串:  

1 ‘‘.join(list)

  list为要转换的列表名。

  2.基本的列表操作

  • 改变列表    
1 >>>x = [1,1,1]2 >>>x[1] = 23 >>>x4 [1,2,1]
  • 删除元素
>>>names = [Void,Alice,Jack]>>>del names[2]>>>names[Void,Jack]
  • 分片赋值
>>>name = list(Perl)>>>name[P,e,r,l]>>>name[2:] = list(ar)>>>name[P,e,a,r]

  3.列表方法

  • append

  append方法用于在列表末尾追加新的对象:  

1 >>>list = [1,2,3]2 >>>list.append(4)3 >>>list4 [1,2,3.4]
  • count

  count用于统计某个元素在列表出现的次数:  

1 >>>x = [[1,2],1,1]2 >>>x.count(13 2 
  • extend

  extend方法可以在列表的末尾一次性追加另一个序列中的多个值。换句话说,可以用新列表扩展原有的列表: 

1 >>>a = [1,2,3]2 >>>b = [4,5]3 >>>a.extend(b)4 >>>a5 [1,2,3,4,5]
  • index

  index方法用于从列表中找出某个值第一个匹配项的索引位置:

1 >>>a = [Love,for,good]2 >>>a.index(good)3 3
  • insert

  insert方法用于将对象插入到列表中:

1 >>>a = [1,2,3]2 >>>a.insert(1,four)3 >>>a4 [1,four,2,3]
  • pop

  pop方法会移除列表中的一个元素(默认是最后一个),并且返回该元素的值:  

1 >>>x = [1,2,3]2 >>>x.pop()3 34 >>>x5 [1,2]
  • remove

  remove用于移除列表中某个值的第一个匹配项:  

1 >>>x = [to,be,or,not,to,be]2 >>>x.remove(be)3 >>>x4 [to,or,not,to,be]
  • reverse

  reverse方法将列表中的元素反向存放: 

1 >>>x = [1,2.3]2 >>>x.reverse()3 >>>x4 [3,2,1]
  • sort

  sort方法用于在原位置对列表进行排序:

1 >>>x = [4,6,2,1,7,9]2 >>>x.sort()3 >>>x4 [1,2,4,6,7,9]

 

  元组

  元组和列表的主要区别在于:列表可以修改,元组则不能。也就是说,如果根据需求来添加元素,那么列表可能会更加好用,而出于某些原因,序列不能修改的时候,使用元组则更加合适。

  创建元组的方法很简单,只需用逗号分隔开一些值,那么你就自动创建了元组。 

1 >>>1,2,32 (1,2,3)

  PS:那么你想知道如何实现一个值的元组么?你可以猜一下,方法很奇特-必须有一个逗号,哪怕只有一个值:

>>>43,(43)>>>4343

  1.tuple函数

  tuple函数的功能与list基本上是一样的:以一个序列作为参数并把它转换为元组

>>>tuple([1,2,3])(1,2,3)

  2.基本元组操作

  元组的操作其实并不复杂,除了创建和访问之外也没有太多的其他操作。

  字典

  列表这种数据结构适合于将值组织到一个结构中,并且通过编号对其进行引用。而字典这种数据结构是通过名字来引用值的数据结构,这种数据结构称为映射(mapping)。字典是Python中唯一内建的映射类型,字典中的值并没有特殊的顺序,但是都存储在一个特定的键下,键可以是数字、字符串、甚至元组。

  1.创建和使用字典 

1 >>>phone = {Void:123,Allen:321}2 >>>phone[Void]3 123

  2.基本字典操作

  • len(d)返回d中的项(键-值对)的数量
  • d[k]返回关联到键k上的值
  • d[k]=v将值v关联到键k上
  • del d[k]删除键为k的项
  • k in d 检查d中是否含有键为k的项  

Python数据结构之列表、元组及字典