python中的集合 dict&set



Python中的集合有dict字典类型和Set集合,一个是键值对的形式、另一个是不重复的元素存储。




一、dict:

1、基本操作

1、Dict的创建:

d= dict(); d = {'Michael': 95, 'Bob': 75, 'Tracy': 'hello'}


2、dict中元素的新增和修改:


D['key']='value':给D赋值,有key则修改没有则新增。


3、dict元素的获取:


D['Michael']如果key不存在,dict读取value就会报错,D.get('Thomas') 或者 d.get('Thomas',0) 不存在时返回None或者预设值。


4、dict元素的删除:

1、D.pop(key)方法,对应的value也会从dict中删除 d.pop(‘Bob')。


2、D.popitem() 方法,删除第一个元素对,并返回该元素对。

3、D.clear() :清除D的所有元素。


2、常见操作

1、D.has_key(k) :判断D中是否包含k。


2、D.items():返回一个list,list元素是tuple。[('k1','v1'),('k2','v2')]


3、D.keys() :返回一个含有所有key的list


4、D.values():返回含有所有value的list



3、代码演示
#coding=utf-8
# dict
# 初始化
d = {}
d = {"a": "A", "b": "B", "c": "C"}
d = dict()
d = dict([("a", "A"), ("b", "B"), ("c", "C")])
# 增加和修改元素

d['d']='D'
d['c']='cc'
#显示 {'a': 'A', 'c': 'cc', 'b': 'B', 'd': 'D'}
print(d)

# 删除元素
d.pop('a')
#显示 {'c': 'cc', 'b': 'B', 'd': 'D'}
print(d)
# 删除一对儿元素,并返回该key value对。通常返回第一对儿
#显示 ('c', 'cc')
print(d.popitem())

# 获取元素
# 通过中括号 此方法如果key不存在会报错
#显示 B
print(d['b'])
# get key不存在会读取默认值
#显示 B
print(d.get('b','defalut_val'))


# 常见操作
# 1、D.has_key(k) :判断D中是否包含k。
#返回true
print(d.has_key('b'))
# 2、D.items():返回一个list,list元素是tuple。[('k1','v1'),('k2','v2')]
#显示 [('b', 'B'), ('d', 'D')]
print(d.items())
# 3、D.keys() :返回一个含有所有key的list
#显示 ['b', 'd']
print(d.keys())
# 4、D.values():返回含有所有value的list
#显示 ['B', 'D']
print(d.values())



一、set:

set中,没有重复的key 重复元素在set中自动被过滤  s = set([1, 1, 2, 2, 3, 3]) 。

1、set基本操作

1、创建一个set集合:
s=set()、s=set(iterable);例如:s = set([1, 2, 3])

2、往set中添加元素:
S.add(key)方法可以添加元素到set中

3、删除set中的元素
S.remove(key)方法可以删除元素。
S.clear()清除所有元素。

2、Set不能做的事情

1、set值不能直接修改。即不可以s[1]=4 可以先转为list再操作,后转回来。
2、set不能根据s[1]来查询s的第2个元素。因为set不支持索引访问元素。只能遍历元素
读取s中的元素需要遍历。
for i in s:
    print(i)

3、代码演示
#coding=utf-8
# set 自动过滤重复元素,不支持索引访问

s=([])
s=(['a','b','a','c'])
s=set()
s=set(['a','b','a','c'])
# 新增元素
s.add('d')
#删
s.remove('a')
s.pop()

# set值不能直接修改。即不可以s[1]=4 可以先转为list再操作,后转回来。
#也不能根据s[1]来查询s的第2个元素。因为set不支持索引访问元素。
#只能遍历元素
#显示:b、d
for i in s:
    print(i)


l=['a','b','c','d','e','f']
#显示
print(l[5:1:-1])