day6 字典的介绍

一、上节知识回顾:

1、list:li=[1,2,3,5,"a"]

增加: append:末尾加入==追加

           insert  :插入,在任意位置,insert(index,"内容”)

           extend :迭代着加入,“asc”---------a,s,c[1,2,3]--------a,s,c,1,2,3

删除: pop 按索引删除,有返回值

           remove:按元素删除

          del  :del li[0]       del li[1:4]         del li(删除整个)

改:li[0]="djshf"     li[1:3]="abcd"    li=["sdalk",1,2,4,"a"]

查询:按照索引,切片,for while 等都可以查出。

其他方法:   count   计数  没有切片

                   sort 从小到大,正序,sort(reverse=True) 倒序排列

                    reverse:反转

                    index  找出元素的索引位置 可以切片

2、元祖。只读,不能更改,儿子不能改,孙子可以改。

              可以切片

3、range(4,12)=[4,5,6,7,8.......11]

             for i in []:

 pay2:xrange

         range

 pay3:range

二、作业讲解:

1、面试题: 关于切片 

li=[1,3,2,'a',4,'b',5,'c']
通过对li列表的切片形成新的列表l5,l5 = [‘c’]
 l5=li[-1:]

2、字符串的拼接

# 利用下划线将列表的每一个元素拼接成字符串“alex_eric_rain“
li=["alsex","erric","rain"]
第一种方法:运用join
temp="_".join(li)
print(temp

第二种方法(非常重要)
msg=""
is_first=True
for item in li:
    if is_first:
        tmp=item
        print(tmp)
        is_first=False
    else:
        tmp="_"+item
        print(tmp)
    msg+=tmp
print(msg)

第三种方法:
li=["alex","eric","rain"]
info="{}_{}_{}".format(li[0],li[1],li[2])
print(info)

第四种方法:
s="alsex"
for i in li[1:3]:
    s=s+"_"+i
print(s)
字符串的拼接

非常重要的知识点:

将 str——>list   使用 split

将 list——>str   使用 join

li="name,sahd,1231"
print(li.split(","))                      # ['name', 'sahd', '1231']
l1=['name', 'sahd', '1231']
print(",".join(l1))                      #name,sahd,1231

3、利用for循环;

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

4、嵌套循环

7,有如下列表li = [1,3,4’,alex’,[3,7,8,’taibai’],5,’ritian’]
循环打印列表中的每个元素,遇到列表则再循环打印出它里面的元素。
我想要的结果是(用三种方法实现):
li=[1,3,4,'alex',[3,7,8,'taibai'],5,'ritian']
第一种方法:利用判断
for i in range(len(li)):
    if type(li[i])==list:
        for j in li[i]:
            print(j)
    else:
        print(li[i])
第二种方法:
for i in range(len(li)):
    if  i==4:
        for j in li[i]:
            print(j)
    else:
        print(li[i])
第三种方法:利用列表的添加
new_lit=[]
for i in li:
    if type(i)==list:
        s=li.index(i)
        l1=li[0:s]
        l2=li[(s+1):]
        new_lit.extend(l1)
        new_lit.extend(i)
        new_lit.extend(l2)
        for j in new_lit:
            print(j)
第四种方法:利用列表的改
new_lit=[]
for i in li:
    if type(i)==list:
        s=li.index(i)
        li[s:s+1]=i
        for j in li:
            print(j)
嵌套循环

 三、今日内容

1、字典

(1)字典是无序的;

(2)数据关联性强

(3)键值对,唯一一个映射的数据类型

(4)字典的键必须是可哈希的(不可变的数据类型;字符串,数字,布尔值,元祖)并且是唯一的

                           不可哈希的(可变的数据类型:列表,字典,set)

2、增

(1)直接增添   dic["name"]="liu" (如果字典里有,则覆盖)

name={"name":"liu","age":12,"wang":"li"}
name["wae"]="tiantain"
print(name)
#{'name': 'liu', 'age': 12, 'wang': 'li', 'wae': 'tiantain'}

  (2) setdefault  有键值对 不做任何改变,没有键值对才添加

name={"name":"liu","age":12,"wang":"li"}
name.setdefault("k")
#{'name': 'liu', 'age': 12, 'wang': 'li', 'k': None}
name.setdefault("k","asd")   
#{'name': 'liu', 'age': 12, 'wang': 'li', 'k': None}
name.setdefault("ds","saji")     
#{'name': 'liu', 'age': 12, 'wang': 'li', 'k': None, 'ds': 'saji'}
print(name)

3、删(1)pop     dic.pop("name")

                           dic.pop("name",None)有返回值

         (2)popitem 无返回值  dic.popitem()

name={"name":"liu","age":12,"wang":"li"}
print(name.pop("name"))      #liu   (返回值)
print(name)               #{'age': 12, 'wang': 'li'}
print(name.pop("andj",None))   #None
name.popitem()
print(name)                #{'age': 12}

             (3) clear   dic.clear()

name={"name":"liu","age":12,"wang":"li"}
name.clear()
print(name)      #{}

             (4) del  del.dic["name"]

name={"name":"liu","age":12,"wang":"li"}
del name["name"]
print(name)      #{'age': 12, 'wang': 'li'}

 4、查

(1)直接查看,通过键  dic["name”]

(2) get  dic.get("name",没有)  若没有这个键则返回None(或者自己设置返回值)

name={"name":"liu","age":12,"wang":"li"}
print(name["name"])     #liu
print(name.get("age"))    #12
print(name.get("ashu"))      #None(如果没有则返回)
print(name.get("sdkfj","jhfue"))   #jhfue(如果没有可以设定返回值)
(3)Keys   dic.keys()#返回键列表
(4)values dic.values()#返回值列表
(5)items dic.items() #返回键值对
name={"name":"liu","age":12,"wang":"li"}
print(name.keys())
print(name.values())
print(name.items())
原文地址:https://www.cnblogs.com/number1994/p/7874949.html