1.总比较:
list、dict、set的数据是可变的,tuple、字符串是不可变的。
list是最自由的,可以使用索引、切片方式访问,可以增加 删除 修改元素。
dict是半自由的,自由体现在键值对的无序,可通过key去索引value的值,不自由体现在数据操作只能通过key来实现。
set是半自由的,自由体现在它通过list传值给它,数据类型是可变的,还可以改变list中的值,数据集是无序的,不重复的,可以进行计算,
不自由体现在无法使用索引和切片准确定位。
tuple是不自由的,数据不能更改,但是和list一样具有序列,可以用索引和切片。
2.序列(列表list和元组tuple)
tuple是一个不可改变的list。
3.list: 10种方法 可变指的是【索引、切片、计算、修改、新增、删除】
list 最后一个元素总是 L[-1]
append:接受一个参数, 这个参数可以是任何数据类型,向 list 的末尾追加单个元素
insert:将单个元素插入到 list 任意位置 aList.insert( 3, 2009)
extend:用来连接 list,使用一个 list参数进行调用
remove:从 list 中删除一个值的首次出现 a.remove('is'),一次只能删除一个 有重复元素时删除首次出现的
pop:可以删除 list 的最后一个元素, 然后返回删除元素的值,用索引删除指定位置的值;del_vlaue=a.pop()
in 和 not in :要测试一个值是否在 list 内, 使用 in, 如果值存在, 它返回 True, 否则返为 False ;'520' in a
index:在 list 中查找一个值的首次出现并返回索引值;index=a.index('is')
+:两个list可以相加 如 a+b
*:复制列表 乘整数
4.dict
dict定义了键和值之间的一一对应关系,每个元素都是一个key-value对,是无序集合
可以通过 key 得到value, 但不能通过vaule获取 key
在一个 dict中不能有重复的 key, 并且 key 是大小写敏感的
键可以是数字、字符串或者是元组等不可变类型
用del使用key可以删除dict中的独立元素; 字典没有remove 方法
用clear可以清除dict中的所有元素;dict_a.clear()
5.set
set是建立一系列无序的,不重复的元素.定义集合用的是大括号{}
创建set的方式是调用set()并传入一个list,list的元素将作为set的元素
set和dict的唯一区别仅在于没有存储对应的value
方法:
add 添加元素 s.add( x ) 将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。e
update 也可以添加元素,且参数可以是列表,元组,字典等 s.update( x );
thisset = set(("Google", "Runoob", "Taobao"))
thisset.update({1,3})
remove s.remove( x ) 将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误。
discard 且如果元素不存在,不会发生错误。
thisset = set(("Google", "Runoob", "Taobao"))
thisset.discard("Facebook") # 不存在不会发生错误
print(thisset)
pop pop 是删除集合的第一个元素(排序后的集合的第一个元素)
in 和 not in 。s.clear()。以及其他的 并 交 差 等运算。issubset() issuperset()
6.tuple
tuple是不可变的list,创建了一个tuple就不能以任何方式改变它
定义tuple是将整个元素集是用小括号括起来,是有序集合
tuple的索引与list一样从0开始,所以一个非空的tuple的第一个元素总是t[0]
负数索引与 list 一样从 tuple 的尾部开始计数
与 list 一样分片 (slice) 也可以使用。分割一个 tuple 时, 会得到一个新的 tuple
没有 append、extend、remove或pop方法以及index方法
可以使用in 和 not in 来查看一个元素是否存在于tuple 中。