list、tuple、dict、set、map

list

  • Python内置的一种数据类型是列表。php

  • list是一种有序的集合,能够随时添加和删除其中的元素。java

# 建立list
classmate = ['micheal', 'Bob', 'Tracy']

#打印长度
len(classmate)

#访问其中的元素
classmate[0]
classmate[-1]

# 向指定位置插入元素
classmate.insert(1, 'Jack')

#删除list尾部的元素
classmate.pop()

#删除list指定位置的元素
classmate.pop(1)

#list中的元素的类型能够不一样
L = ['Apple', 123, True]

#list中能够有另外一个list
s = ['python', 'java', ['asp', 'php'], 'scheme']
#或者
p =  ['asp', 'php']
s = ['python', 'java', p, 'scheme']

tuple

  • 另外一种有序列表叫元组:tuple。python

  • tuple一旦初始化就不能再修改算法

  • 由于tuple不可变,因此代码更安全,没有append、insert这样恩方法。安全

  • 元素获取的方法和list相同。app

  • 若是可能,能用tuple的地方尽可能不实用list。code

#定义tuple
t = (1, 2)
#定义空tuple
t = ()

#只有一个元素的tuple,必须加 ,!!!!
t = (1, )

#可变的tuple
t = ('a', 'b', ['A', 'B'])
t[2][0]='X'
t[2][1]='Y'

dict

  • dict:字典,全程dictionary,其余语言中也叫作map对象

  • 存储方式为:key-value,键值对的方式。内存

  • key不容许重复,不然,后定义的值会覆盖前面定义的值rem

# 定义一个dict
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}

# 添加元素
d['Adam'] = 67

# 判断key是否存在
'Tomas' in d

# 若是不存在,则返回null
d.get('Thomas')
# 若是不存在,则返回-1
d.get('Thomas', -1)

# 删除一个元素
d.pop('Micheal')
  • 和list相比,1)dict查找和插入速度很快,不会随着key的增长而增长。2)须要占用大量的内存。

  • 这是由于dict根据key来计算value的存储位置,若是每次计算相同的key得出的结果不一样,那dict内部就彻底混乱了。这个经过key计算位置的算法称为哈希算法(Hash)。


set

  • 不能重复的list。

  • 建立一个set,须要一个list做为输入集合。

# 建立一个set
s = set([1, 1, 2, 2, 3, 3])

# 添加元素
s.add(key)

# 删除元素
s.remove(key)

# set能够当作是集合
s1 = set([1, 2, 3])
s2 = set([2, 3, 4])
# 集合的交集
s1 & s2
# 集合的并集
s1 | s2

不可变对象

  • 对于不变对象来讲,调用对象自身的任意方法,也不会改变该对象自身的内容。相反,这些方法会建立新的对象并返回,这样,就保证了不可变对象自己永远是不可变的。
相关文章
相关标签/搜索