Python学习Day06-字典

* saving=input(‘qqqqqqqqqqqq’)

  If saving.isdigit()    #验证saving是否是一个数字;

 

* for i in 序列(range(),列表,元组,字典)

 

*list[]

 list.index(i) 取索引

 

*enumerate(list) 在list各元素前加索引,从零开始

 enumerate(list,1)从1开始;

 

*for i,v in (list) 把list里第一个元素赋给i,第二个元素赋给v

--------------------------------------------------------------------------

*********************字典**************************

字典是python中唯一的映射类型,采用峰值对(key-value)的形式存储数据。

字典是无序存储的。是无序对象的集合。字典中的元素是通过键来存储的。

*print(id(a))#查看a的内存地址 

不可变类型:整形、字符串、元组

可变类型:列表、字典

字典举例:dic={'name':'alex', 'age':35,'hobby':'girl',键:值} (键必须为不可修改的类型,值可以为可修改类型)

字典两大特点:无序、键唯一

*字典创建:

  1.dic={'name':'alex', 'age':35,'hobby':'girl',键:值}

  2.dic2=dict('name','alex')(小括号、中括号均可)

*字典的操作:

 1.增

  dic1={'name':'alex'}

  dic1['age']=18

  即增加了‘age':18.如果有作修改,如果没有创建新的

  dic1.setdefault('age',34),如果键有,不做变动。如果没有创建新的。并返回键对应的值

 2.查

  通过键查对应的值

  dic.keys() 字典里所有的键(dict_keys类型,想用需要进行转换)

  dic.values()字典里所有的值

  dic.items()字典里所有的键值对

  dic.get(键)取得键对应的值

  dic.get('name','xxx') 没有name这个键就新增,有则修改

3.改

  取出来进行赋值

  dic['age']=55

  dic1.update(dic2) 把字典2的键值对加到1,重复的更新,一样的不加

4.删

  del dic['name']  删掉name对应的键值对

  dic1.clear()清空字典,字典还存在

  dic.pop('age') 删掉age键值对并返回age键对应的值

  dic2,popitem随机删除一组键值对

  del dic3 删除整个字典

5.其它操作

  dic1=dict.fromkeys(['1','2','3'],'test'])键为1,2,3.对应的值均为‘test'’

*字典嵌套:

 *排序*:

  根据键进行排序,如果是数字,从小到大。如果是字符串,按ASCII码

  sorted(dic.value()),按值进行排序

*字典的遍历*:

  for i in dic

  print(i) #默认是遍历键,把键打印出来,dic[i]效率更高。

  for i,v in dic.items()

  print(i,v)#把键和值都打印出来。不推荐。

-------------------------------------------------------------------------------------------

*******************************字符串******************************

*操作*:

  单引号和双引号:基本无差别。

       a="let's go" 

  1.乘法操作:重复输出字符串

  2.字符串也可以切片,通过索引去取

  3.关键字 in:判断是否存在 ‘ell’ in ‘hello’,是为True

  4.格式化输出:%s,XXX

  5.字符串拼接:

    1,a=‘123‘            ’b=abc’  c=a+b  效率低

    2,'**'.join([a,b])  字符串.join(列表或元组),拼接,将列表里每一个元素用前面的字符串拼接。a**b**d

  6.字符串内置方法:

    st='he\tllo world {name}'

    st.count('l')  #属l的个数

    *st.capitalize()  #将字符串首字母大写

    st.center(50,'-')  #50g个-,中间放st字符串

    st.ljust(50,'*') #50个*,字符串最左

    st.rjust(50,'*') #50个*,字符串最右

    st.endswtirh('y') #判断以什么结尾,正确返回TRUE

    *st.startswith('he') #判断以什么开头,正确返回TRUE 重要 

    st.expandtabs(tabsize=10) #设置tab的空格数,没用

    *st.find('o') #从左找到o并返回索引值,没有返回-1

    st.rfind('t')  #从右数第一个t的索引位置

    *st.format(name='alex') #格式化输出

    st.format_map({'name':'alex'}) #格式化输出,用字典

    st.index(t') 与find功能一样,没有则报错 

    st.isalnum #判断st是否为包含字母或数字或汉字,有其它为FLASE

    st.isdecimal() #判断是否为10进制

    st.isfigit()  #判断是否为整形数=st.numeric

    st.islower() #判断是否为全部小写

    st.isupper()#判断是否为全部大写

    st.isspace() #判断是否全部为空格

    st.istitle() #判断每个单词的首字母大写

    *st.lower() #所有大写变小写

    *st.upper()#所有小写变大写

    st.swapace()# 所有大小写反转    

     *****st.srtip()  #将字符串前后空格、换行符去掉,.lstrip,前面的都去掉,rstrip 后面的都去掉

    *st.replace('titile','lesson',1)  #将lesson 替换1次 title

    *st.split(' ') #用空格作分隔符,分割字符串成列表

    st.rsplit('i',1) #只分割一次,从右往走数

    st.titile() #所有单词首字母大写

posted @ 2020-02-04 14:14  小将博杨  阅读(136)  评论(0)    收藏  举报