day05 数据类型:字典

一、昨日作业讲解

lis = [2,3,'k',['qwe',20,['k',['tt',3,'1']],89],'ab','adv']

# 1)将列表lis中的’tt’变成大写(用两种方式)。
lis[3][2][1][0] = "TT"
print(lis)
lis[3][2][1][0] = lis[3][2][1][0].upper()
print(lis2)
# 2)将列表中的数字3变成字符串’100’(用两种方式)。
lis[1] = '100'
lis[3][2][1][1] = '100' # 直接改
print(lis)

lis[3][2][1].remove(3)  # 移除后再添加
lis[3][2][1].insert(1,'100')
print(lis)

# 3)将列表中的字符串’1’变成数字101(用两种方式)

lis[3][2][1][2] = 101
print(lis)
lis[3][2][1][2] = int(lis[3][2][1][2].replace('1','101'))
print(lis)

print(lis[3][2][1][2])  # '1'
lis[3][2][1][2] = int('10'+lis[3][2][1][2])
lis[3][2][1][2] = int(lis[3][2][1][2]) + 100
print(lis)

li = [1,2,3]
li[2] = 33
print(li)

# 5,查找列表li中的元素,移除每个元素的空格,
# 并找出以’A’或者’a’开头,并以’c’结尾的所有元素,
# 并添加到一个新列表中,最后循环打印这个新列表。
# li = [‘taibai ’,’alexC’,’AbC ’,’egon’,’ Ritian’,’ Wusir’,’  aqc’]

li = ['taibai ','alexC','AbC ','egon',' Ritian',' Wusir','  aqc']
b=[]
for i in li:
    s=i.strip()
    if (s.startswith("A")or s.startswith("a"))and s.endswith("c"):
        b.append(s)
for x in b:
    print(x)

for i in li:
    s=i.strip()
    if s[0].upper() == 'A' and s[-1] == 'c':
        b.append(s)
for x in b:
    print(x)

# 6、开发敏感词语过滤程序,提示用户输入评论内容,如果用户输入的内容中包含特殊的字符:
# 敏感词列表 li = ["苍老师","东京热",”武藤兰”,”波多野结衣”]
# 则将用户输入的内容中的敏感词汇替换成***,并添加到一个列表中;
# 如果用户输入的内容没有敏感词汇,则直接添加到上述的列表中。

li=["苍老师","东京热","武藤兰","波多野结衣"]
new_li= []
info = input("评论")  # 苍老师,东京热 法律框架第三
for i in li:
    if i in info:
        l = len(i)
        info=info.replace(i,'*'*l)
new_li.append(info)
print(new_li)
View Code

 

 二、数据类型划分

数据类型划分:可变数据类型,不可变数据类型

  不可变数据类型(可哈希):元组,bool int str       

  可变数据类型(不可哈希):list,dict set 

    dict中的key 必须是不可变数据类型,可哈希,

      value:可以是任意数据类型。

    dict 优点:二分查找去查询,存储大量的关系型数据

       特点:无序的

三、字典的增删改查

1、增

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
dic1['high'] = 185  #没有键值对,添加
dic1['age'] = 16  #如果有键,则值覆盖
# setdefault
dic1.setdefault('weight')  # 有键值对,不做任何改变,没有才添加。
dic1.setdefault('weight',150)
dic1.setdefault('name','二哥')
print(dic1)

2、删


#删 pop popitem del clear
print(dic1.pop('age'))   # 有返回值,按键去删除
print(dic1.pop('二哥',None))   # 可设置返回值
print(dic1)

print(dic1.popitem())  # 随机删除 有返回值 元组里面是删除的键值。
print(dic1)

del dic1['name1']
print(dic1)
del dic1
print(dic1)

dic1.clear() #清空字典

3、改

#改  update
dic1['age'] = 16 #直接改

dic = {"name":"jin","age":18,"sex":"male"}
dic2 = {"name":"alex","weight":75}
dic2.update(dic)  # 有健则覆盖,没有就添加

print(dic)
print(dic2)

4、查

#

dic1 = {'age': 18, 'name': 'jin', 'sex': 'male',}
print(dic1.keys(),type(dic1.keys()))
print(dic1.values())
print(dic1.items())  # 输出的是元组,元组里是建和值

for i in dic1:
    print(i)  #默认打印的是健
for i in dic1.keys():
    print(i)
for i in dic1.values():
    print(i)

a,b = 1,2
print(a,b)
a = 1
b = 2
a,b = b,a  #面试题
print(a,b)
a,b = [1,2],[2,3]
a,b = (1,2)
print(a,b)

for i in dic1.items():
    print()
for k,v in dic1.items():
    print(k,v)

v1 = dic1['name']
print(v1)
v2 = dic1['name1']  # 没有健就会报错
print(v2)
print(dic1.get('name1','没有这个键'))
View Code

四、字典的嵌套

dic = {
    'name':['alex','wusir','taibai'],
    'py9':{
        'time':'1213',
        'learn_money':19800,
        'addr':'CBD',
           },
    'age':21
}

# 把年龄改为56
dic['age'] = 56
# 在name中添加ritian
print(dic['name'])
dic['name'].append('ritian')
# 把wusir变成大写的
l = [1,2,'wusir']
l[2] = l[2].upper()
dic['name'][1] = dic['name'][1].upper()
print(dic)
# 在py9中添加female
female : 6
dic['py9']['female'] = 6
print(dic)

五、作业补充

# 计算一个字符中的数字整体的个数
# fhdklah123rfdj12fdjsl3    '       123     12    13'
info = input('>>>').strip()
for i in info:
    if i.isalpha():
        info = info.replace(i," ")
l = info.split()
print(len(l))

 

posted @ 2018-12-15 16:26  pumpkin_J  阅读(85)  评论(0)    收藏  举报