Python 基础五(数据类型之字典用法)

一、补充内容----

字符串、和列表的相互转化

1、join -----list >>>>>> str

# join   
l1 = ['alex','wusir','taibai']
s = '_'.join(l1)
print(s)
# alex_wusir_taibai-----可以使列表转换成字符串

2、split------- str >>>>>>list

#split  
l2 = s.split(',')
print(l2)
# ['alex', 'wusir', 'taibai'] ------可使字符串转换成列表

  

range----在py2和py3的区别

 

试题讲解-----过滤敏感字

开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”]
则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;如果用户输入的内容没有敏感词汇,
则直接添加到上述的列表中
li = ["苍老师", "东京热", "武藤兰", "波多野结衣"]
l2 = []
comtent = input('请输入评论:') # 
for i in li:
    if i in comtent:  #
        comtent = comtent.replace(i,len(i)*'*')  #
l2.append(comtent)
print(l2)

  

二、字典 dic

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组

字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

放大量的数据类型,且关联性较强.

字典的key 与value

key:value 键 值

key 是唯一的,且是不可变数据类型

value 是可以是任意数据类型

在python3.5之前字典都是无序的,3.6以后都是有序的

 

字典的增删改查

1、增

dic['key'] = value

dic = {"name": "jin", "age": 18, "sex": "male"}
dic['name2'] = '依米'
print(dic)
输出 
{'name': 'jin', 'age': 18, 'sex': 'male', 'name2': '依米'}
dic['name'] = '王子'
print(dic)
输出
{'name': '王子', 'age': 18, 'sex': 'male'}
# 有key就覆盖,没有key就添加

  dic.setdefault

dic.setdefault('hobby')
print(dic)
dic.setdefault('hobby','开船')
print(dic)
dic.setdefault('name','太白')
print(dic)
输出
{'name': 'jin', 'age': 18, 'sex': 'male', 'hobby': None}

{'name': 'jin', 'age': 18, 'sex': 'male', 'hobby': '开船'}

{'name': 'jin', 'age': 18, 'sex': 'male'}

#有key不变,没有key才添加,不加value,输出None.

  

2、删

pop 按key删除,有返回值
dic.pop('sex')
print(dic)------{'name': 'jin', 'age': 18}
ret = dic.pop('sex')
print(ret)-------male
ret = dic.pop('sex1','没有此键')
print(ret)--------没有此键

  清空 clear

清空列表中的内容

dic.clear()
print(dic)-----{ }

del  ----删除字典,删除键值对

del dic
print(dic)
报错
del dic['name']
print(dic)
输出
{'age': 18, 'sex': 'male'}----删除键值对

  popitem() -----随机删除

     有返回值

ret = dic.popitem()
print(ret)
print(dic)
输出
('sex', 'male')
{'name': 'jin', 'age': 18}

  

3、改

dic['key'] = value, 有key 就覆盖.

update---------将dic的键值对,覆盖,添加到dic2 中,dic不变

dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic)
print(dic)
print(dic2)
输出
{'name': 'jin', 'age': 18, 'sex': 'male'}--不变
{'name': 'jin', 'weight': 75, 'age': 18, 'sex': 'male'}--添加覆盖到dic2

  

4、查

dic = {"name":"jin","age":18,"sex":"male"}

print(dic['name'])--------jin
print(dic['name2'])------报错

  dic.get()----有key输出,没有key返回None,可以添加返回值

dic = {"name":"jin","age":18,"sex":"male"}

print(dic.get('name'))
print(dic.get('name2'))
print(dic.get('name2','没有此键值对'))
输出
jin
None
没有此键值对

 三、其他用法

 1、分别赋值

a,b = 1,2
print(a,b)
# a = 1 b = 3 一行代码,让a,b值互换
a = 1
b = 3
a,b = b,a
print(a,b)
a,b = ['alex','wusir']
print(a,b)
a,b = ('alex','wusir')
print(a,b)

  2、取元素中的key 和 value

dic = {"name":"jin","age":18,"sex":"male"}
keys = dic.keys()   
print(keys,type(keys))   # 只取键
dict_keys(['name', 'age', 'sex']) <class 'dict_keys'>

k = list(keys)    # 可以转换成列表
print(k,type(k))
['name', 'age', 'sex'] <class 'list'>

values = dic.values()    
print(values)      #只取值
dict_values(['jin', 18, 'male'])

items = dic.items()
print(items)      #取键值对
dict_items([('name', 'jin'), ('age', 18), ('sex', 'male')])

 3、 在for循环中运用

dic = {"name":"jin","age":18,"sex":"male"}
for k in dic:
    print(k)-------# 分别只取 键

for k in dic.keys():
    print(k)------# 分别只取 键
for v in dic.values():
    print(v)------# 分别只取值

for k,v in dic.items():
    print(k,v)----# 取键和值

for k in dic:
    print(k,dic[k]) -----# 取键和值

  四、字典的嵌套

   字典内含有字典

dic = {
    'name':'金鑫',
    'name_list':[1,2,3,'李杰'],
    1:{
        'python10':['小黑','萌哥'],
       '老男孩':{'name':'oldboy','age':56}
    }
}

#1,[1,2,3,'李杰']追加'wusir'
# 2, ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥
# 3, {'name':'oldboy','age':56} 添加一个键值对,hobby:男人

练习
# 1,[1,2,3,'李杰']追加'wusir'
dic['name_list'].append('wusir')
print(dic)

#2, ['小黑','萌哥'] 小黑 萌哥中间 插入一个花哥
l = dic[1]['python10']
l.insert(1,'花哥')
print(dic)

# 3, {'name':'oldboy','age':56} 添加一个键值对,hobby:男人
dic[1]['老男孩']['hobby'] = 'man'
print(dic)

  

 

posted @ 2018-01-25 18:04  GuoXY  阅读(204)  评论(0编辑  收藏  举报