list/tuple/dict/set区别

list

  • 有序集合,随时增删。
  1. append(y) 在列表尾部追加单个对象y。使用多个参数会引起异常。
  2. count(y) 返回对象y在列表中出现的次数。
  3. extend(L) 将列表L中的表项添加到列表中。返回None。
  4. index(y) 返回列表中匹配对象y的第一个列表项的索引。无匹配元素时产生异常。
  5. insert(i,y) 在索引为i的元素前插入对象y。如list.insert(0,y)在第一项前插入对象。返回None。
  6. pop(i) 删除列表中索引为i的表项,并返回该表项的值。若未指定索引,pop返回列表最后一项。
  7. remove(y) 删除列表中匹配对象y的第一个元素。无匹配元素时产生异常,返回None。
  8. reverse() 颠倒列表元素的顺序。 默认值为False,要想颠倒列表元素顺序,则设为True
  9. sort() 对列表排序,返回none。bisect模块可用于排序列表项的添加和删除。

tuple

  • 有序列表,一旦初始化,无法修改。
  • 因为代码不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple
  • 可变tuple:
    m = ('aa', 'bb', ['AA', 'BB'])
    m[2][0] = 'XX'
    m[2][1] = 'YY'
    print(m)
    ('aa', 'bb', ['XX', 'YY'])
    # tuple包含一个list元素,因为list类型变量是可变性变量,所以从始到末,tuple指向的list没有改成别的list.
    

dict

  • 键值对儿方式存储,查找速度快,没有顺序。key必须是不可变对象(str, int, float, tuple)。
  • key必须是哈希的,可以利用hash方法测试。
  1. dict.keys()
  2. dict.values()
  3. dict.items()
  4. dict.pop()

dict VS list
字典具有下面的特点: 1. 查找和插入的速度极快,不会随着key的增加而增加;2. 需要占用大量的内存,内存浪费多(用空间换时间)。
列表具有下面的特点:1. 查找和插入的时间随着元素的增加而增加;2. 占用空间小,浪费内存很少(用时间换空间)。

set

  • 无序集合,key不重复。
  • The elements of a set must be hashable.
  • set.add():adds an individual element to the set.
  • set.update():pass multiple iterables to it and it will iterate all iterables and will include the individual elements in the set.
  • remove(elem): Remove element elem from the set. Raises KeyError if elem is not contained in the set.
  • discard(elem): Remove element elem from the set if it is present.
  • < <= 表示 子集,> >=表示超集
  • | 表示联合, & 表示交集 , - 表示差集, ^ 差分集

你可能感兴趣的:(list/tuple/dict/set区别)