1. List

列表,即list是Python中内置的一种结构化数据类型。它是一种有序的集合(注意其中元素的类型不要求相同),可以随时添加和删除其中的元素。

1 ) 初始化



list1 = []            #一个空列表list2 = [1, 2, 3, 5]  #一个非空列表



2 ) 基本操作

  • 追加元素到末尾:
list1.append(6)



  • 把元素插入到指定的位置,其中第一个参数是指示具体位置的索引:
list2.insert(3, 4)



  • 用一个列表来扩展另外一个列表,即把一个列表中的所有元素追加到另外一个列表的末尾:
list2.extend(list1)



3 ) 列表解析(list comprehension)

从一个列表中筛选出符合条件的元素,例如:



list3 = [x for x in list2 if x%2==0]




2. Tuple

元组也是一种有序列表,它与列表很相似,但是元组中的内容是不能修改的



tuple1 = (1, 2)tuple1 = (1, )   #注意只有一个元素的tuple不能写成 tuple1 = (1)



或者有时你需要把把一个list转换成tuple,例如:



tuple2 = tuple(list2)




3. Dict

Python中内置了字典类型dict,即dictionary,在其他语言中也称为map,使用键-值(key-value)对存储,具有极快的查找速度。

1 ) 初始化与访问



dict1 = {}                                    #一个空字典dict2 = {'Tom': 95, 'Jack': 75, 'Mary': 85}   #一个非空字典



通过键-值对的赋值,可以向字典中添加新元素(如果原键不存在的化),如果原键本就存在于字典中,那么赋值就相当于将原有值设置成新值(因为一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉),例如:



dict1['color'] = 'red'dict2['Tom'] = 100



另外,如果要取某个key对应的value时,若key不存在,那么该访问将报KeyError错误。要避免这种错误,有两种方法:

i)访问前,先通过in判断key是否存在:



if 'Tom' in dict2:    print('Yes')



ii)通过dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value:



dict2.get('James')dict2.get('James', -1)



2 ) 删除

删除字典中的某一项:



del dict2['Mary']



3 ) 遍历

两个重要的方法:keys() 返回字典的所有的key,values() 返回字典所有的值,例如



for k in dict2.keys():    print(k)




4. Set

Set就是集合,它具有无序不重复的特点。

1 ) 初始化

可以用一个列表来初始化一个集合,但是集合会对原列表做去重操作:



s1 = set([1, 1, 2, 2, 3, 3])   # {1, 2, 3}s2 = set()                       # 初始化一个空集



2 ) 基本操作

通过add(key)方法可以添加元素到set中,若添加了重复的元素,则不会产生效果;通过remove(key)方法可以删除元素:



s1.add(4)s1.remove(1)



对于set来说,数学上的定义的集合操作(包括求交、并等),Python中也是支持的:



s1 = set([1, 2, 3])s2 = set([2, 3, 4]) s1 & s2    #{2, 3}s1 | s2    #{1, 2, 3, 4}





python 字典数据追加 python把字典追加到列表_赋值


3 ) hashable 与 unhashable

为了追求高的搜索效率,Set中的元素必须是可哈希的(hashable)。基本数据类型都属于此类,Tuple也是如此。但列表是unhashable的。因此,“列表的列表”是可行的,但“列表的集合”则是不可行的。通常,如果集合中的元素是一个有序表,那么需要使用tuple类型。


listoflists = [[0, 1, 2], [2, 3, 5, 6], [0, 1, 2], [1, 2, 3, 4, 5]]setoftuples = {tuple(l) for l in listoflists} #{(0, 1, 2), (1, 2, 3, 4, 5), (2, 3, 5, 6)}