python学习——字典、集合、数据类型总结

字典

注意:遍历字典的时候不要添加/修改元素,那样会导致添加修改的元素重复遍历!

可变类型数据:列表、字典、集合(可以增删查改)

dict类型,{}表示,由键值对组成{key:value}

字典没有下标,键就是字典的索引

dic = {"name": "小明", "age": 18, "phone": "18900000000"}

 

规范:①键不能重复

           ②字典中的键只能使用不可变类型的数据(通常是字符串) (不可变类型:数值,字符串,元组)

           ③键对应的值可以是任何数据类型

 

1、索引取值

dic = {"name": "小明", "age": 18, "phone": "18900000000"}
print(dic["name"])

结果:小明

 

2、增删查改

①添加元素

1、添加单个元素

dic = {"a": 11, "b": 22, "c": 33}
dic["d"] = 99
print(dic)

结果:{'a': 11, 'b': 22, 'c': 33, 'd': 99}

2、update:添加多个元素

dic = {"a": 11, "b": 22, "c": 33}
dic.update({"aa": 111, "bb": 222})
print(dic)

结果:{'a': 11, 'b': 22, 'c': 33, 'aa': 111, 'bb': 222}

 

②修改元素

dic = {"a": 11, "b": 22, "c": 33}
dic["c"] = 99
print(dic)

结果:{'a': 11, 'b': 22, 'c': 99}

 

③删除元素

1、pop:删除键所对应的键值对(返回键对应的值)

dic = {"a": 11, "b": 22, "c": 33}
res = dic.pop("b")
print(res)
print(dic)

结果:

22
{'a': 11, 'c': 33}

2、popitem:删除最后一个添加的键值对(python3.5之后),以元组形式返回键值对

dic = {"a": 11, "b": 22, "c": 33}
res = dic.popitem()
print(res)
print(dic)

结果:

('c', 33)
{'a': 11, 'b': 22}

 

④查找元素

 1、通过键进行索引取值

dic = {"a": 11, "b": 22, "c": 33}
res = dic["c"]
print(res)

结果:33

2、get:通过键获取对应的值

dic = {"a": 11, "b": 22, "c": 33}
res = dic.get("c")
print(res)

结果:33

 

3、其他方法

 

①获取字典中所有的键

dic = {"a": 11, "b": 22, "c": 33}
res = dic.keys()
print(res)
print(list(res))  #可以转化成列表形式,看起来美观

结果:

dict_keys(['a', 'b', 'c'])
['a', 'b', 'c']

 

②获取字典中所有的值

dic = {"a": 11, "b": 22, "c": 33}
res = dic.values()
print(res)
print(list(res))

结果:

dict_values([11, 22, 33])
[11, 22, 33]

 

③items():获取字典的键值对,每个键值对作为一个元组

dic = {"a": 11, "b": 22, "c": 33}
print(dic.items())
print(list(dic.items()))

结果:

dict_items([('a', 11), ('b', 22), ('c', 33)])
[('a', 11), ('b', 22), ('c', 33)]

 

4、关于字典定义的扩展方法

①{key:value}形式定义

dic = {"a": 11, "b": 22, "c": 33}

 

②使用dict转换[(key,value),(key,value)]这种数据类型

dic2 = dict([('a', 11), ('b', 22), ('c', 33), ('d', 44)])
print(dic2)

结果:{'a': 11, 'b': 22, 'c': 33, 'd': 44}

 ③dict(key=value,key=value)

#第三种:dict(key=value,key=value)
dic3 = dict(name="musen", age=18, gender="")
print(dic3)

结果:{'name': 'musen', 'age': 18, 'gender': '男'}

 

集合

集合:set类型,通过{}表示,{value,value}

集合的特性:

①不能存在重复数据

set2 = {1, 1, 1, 1, 2, 2, 3, 4, 5, 6, 3, 2, 4, 5, 6}
print(set2)
#结果:{1, 2, 3, 4, 5, 6}

②数据为不可变类型,但集合是可变类型

③无序的(和字典一样),没有下标索引

④集合是可变类型的数据

⑤增删查改

 

集合的应用:

1、对数据去重

# 字符串去重
s = "dfghjkldfghjkdfghjk"
s1 = set(s)  #将字符串转为集合(去重)
s2 = "".join(s1) #集合重新转为字符串
print(s2)

结果:fgdklhj
# 列表去重
li = [1, 1, 1, 2, 3, 4, 5]
res = list(set(li))
print(res)

结果:[1, 2, 3, 4, 5]


2、把数据放在集合里,用来区分数据是否可变,可变运行会报错

s6 = {111,99.99,True,"python",(1,2)}  #不报错
s7 = {{1,2,3}}  #报错

 

 

 

 

数据类型总结

#字符串不可变类型举例
n = 'python'
res = n.replace("p","ttt")
print(res)
print(n)

结果:tttython
     python

 

数据的嵌套

# 列表里嵌套列表
li = [[1, 2, 3], [1, 2, 3, [1, 'python', '333']]]
res = li[1][3][1]
print(res)

结果:python
# 列表嵌套字典
li2 = [{"name": "小明", "info": [1, 2, 3, 4]}, {"name": "无名"}, {"name": "欧阳"}]

 

posted @ 2020-02-13 20:45  mkay  阅读(223)  评论(0编辑  收藏  举报