list

  • python内置的一种数据结构
  • 有序
  • 可更改(添加、删除)

声明

  1. >>> game = ["dota", "dota2", "lol"]
  2. >>> game
  3. ['dota', 'dota2', 'lol']

获取列表长度

  1. >>> len(game)
  2. 3

获取元素

  1. >>> game[0]
  2. 'dota'
  3. >>> game[1]
  4. 'dota2'
  5. >>> game[2]
  6. 'lol'
  7. >>> game[3]
  8. Traceback (most recent call last):
  9. File "<stdin>", line 1, in <module>
  10. IndexError: list index out of range
  11. >>>

如果下标越界会报错

更改

  1. >>> game[0] = "dota3"
  2. >>> game
  3. ['dota3', 'dota2', 'lol']

增加元素

末尾追加

  1. >>> game.append("wow")
  2. >>> game[3]
  3. 'wow'
  4. >>> game
  5. ['dota', 'dota2', 'lol', 'wow']

指定位置插入

  1. >>> game.insert(2, "war3")
  2. >>> game
  3. ['dota', 'dota2', 'war3', 'lol', 'wow']

删除元素

删除末尾的元素

  1. >>> game.pop()
  2. 'wow'
  3. >>> game
  4. ['dota', 'dota2', 'war3', 'lol']

删除指定位置元素

  1. >>> game.pop(1)
  2. 'dota2'
  3. >>> game
  4. ['dota', 'war3', 'lol']

tuple

  • python内置的一种数据结构
  • 有序
  • 不可更改
  • 在赋值的时候决定所有元素

声明

  1. >>> game = ('dota', 'war3', 'lol')
  2. >>> game
  3. ('dota', 'war3', 'lol')

获取长度

  1. >>> len(game)
  2. 3

获取元素

  1. >>> game[0]
  2. 'dota'
  3. >>> game[1]
  4. 'dota2'
  5. >>> game[2]
  6. 'lol'
  7. >>> game[3]
  8. Traceback (most recent call last):
  9. File "<stdin>", line 1, in <module>
  10. IndexError: list index out of range
  11. >>>

如果下标越界会报错

dict

  • python内置的一种数据结构
  • 无序
  • 可更改

类似于C++语言的map,存键值对,有很快的查找速度。比如根据身份证号查找某个人的名字,根据学号查找学生成绩单。用list遍历也可以得到结果,但是太慢了,list就好像你在一个小区找人,你一家一家敲门。dict就好像你直接按照地址X栋X单元X层直接找。 dict是典型的用空间换时间的例子。会占用大量内存,但是查找、插入速度很快,不会随着元素数量增加而增加。 list则是时间换空间的例子,不会占用大量内存,但是随着元素数量增多,查找时间会变很长。

声明

  1. >>>name = {1: "alan", 2: "bob", 3: "lucy"}

查找

  1. >>>name[1]
  2. 'alan'
  3. >>>name[2]
  4. 'bob'
  5. >>>name[3]
  6. 'lucy'
  7. >>> name[5]
  8. Traceback (most recent call last):
  9. File "<stdin>", line 1, in <module>
  10. KeyError: 5

为了避免出现报错的情况我们一般事先判断一下这个key是否在字典中

  1. >>> 5 in name
  2. False

也可以用get方法取,如果key不存在,会返回None或者自己定义的默认值

  1. >>> name.get(5)
  2. >>> name.get(5, "default")
  3. 'default'

更改

  1. >>> name[4] = "mac"
  2. >>> name
  3. {1: "alan", 2: "bob", 3: "lucy", 4: "mac"}

删除

  1. >>> name.pop(1)
  2. 'alan'
  3. >>> name
  4. {2: 'bob', 3: 'lucy'}

元素个数

  1. >>> len(name)
  2. 2

获取所有key

  1. >>> name.keys()
  2. [2, 3]

获取所有value

  1. >>> name.values()
  2. ['bob', 'lucy']

获取所有键值对

  1. >>> name.items()
  2. [(2, 'bob'), (3, 'lucy')]

set

  • python内置数据结构
  • 无序
  • 可更改

set可以视为没有value的dict,只存key,一般用做去重或者集合求交、求并等。

声明

  1. >>> girls_1 = set(['lucy', 'lily'])
  2. >>> girls_2 = set(['lily', 'anna'])

求并、交

  1. >>> girls_1 & girls_2
  2. set(['lily'])
  3. >>> girls_1 | girls_2
  4. set(['lily', 'lucy', 'anna'])

增加元素

  1. >>> girls_1.add('marry')
  2. >>> girls_1
  3. set(['marry', 'lily', 'lucy'])

删除元素

  1. >>> girls_1.remove('lucy')
  2. >>> girls_1
  3. set(['marry', 'lily'])