前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python全栈Day 12部分知识点

Python全栈Day 12部分知识点

作者头像
py3study
发布2020-01-19 17:21:41
3630
发布2020-01-19 17:21:41
举报
文章被收录于专栏:python3python3

可迭代对象:列表、字符串、元组

列表(list [])的“魔法”

  定义

    列表是一种类,中括号把数据元素(六大数据类型都可以)括起来,用逗号作分割符。  

    有序,元素可被修改。

  特性

    深灰“魔法”

    ——可索引(下标)取值;

    ——可切片,切片结果也是列表;

        li=[1,12,9,'age','alex']  #通过list类创建的对象,li

        li[1:3]=[120,90]

        print(li)

        输出

          [1,120,90,'age','alex']

    ——支持in操作

    ——支持for/while循环。

    ——可嵌套

        查找嵌套列表的元素可在[]后再加[]

    ——列表元素可以被修改

        li[1]=2

        li[2]=9

        print(li)

        输出

          [1,2,9,'age','alex']

    ——列表元素可以删除

        ...

        del li[1]

        print(li)

        输出

          [1,9,'age','alex']

        del li[1:3]

        输出

          [1,'alex']

    ——字符串转列表,用list()

        s='abcd'

        new_s=list(s)

        print(new_s)

        输出

          ['a','b','c','d']

    ——列表转字符串

''' li=[11,22,33,'123','alex']  

            r=str(li)

            print(r)  #输出‘[11,22,33,'123','alex']’  '''

      1.既有数字,又有字符串,写for循环依次处理

        for i in li:

          s=s+str(i)

        print(s)

      2.只有字符串,使用join

        li=['123','alex']

        v=''.join(li)

        print(v)

        输出

          123alex

  灰“魔法”——list类中提供的方法

    - append(原来值最后追加,对列表本身进行修改,而非像字符串一样,创建一个新变量添加元素)

    - clear(清空列表,使列表变成[])

    - copy((浅)拷贝)

      li=[11,22,33,44]

      v=li.copy

      print(v)

      输出

        [11,22,33,44]

    - count(计算元素出现的次数)

    - extend(扩展源列表)

       li=[11,22,33,44]

      li.extend([9898,'不得了'])  #相当于执行了for循环

      print(li)

      '''  li.append([9898,'不得了'])  #整体放进去

          print(li)  '''

      '''  li.extend('不得了')

          print(li)  '''

      输出

        [11,22,33,44.9898,‘不得了’]

        '''  [11,22,33,44,[9898,‘不得了’]]  '''

        '''  [11,22,33,44,‘不','得','了’]  '''

    - index(根据值获取当前值索引位置,左边优先)

      li=[11,22,33,44]

      v=li.index(22)

      print(v)

      输出

        1

    - insert(在指定索引位置插入元素)

      li=[11,22,33,44]

      li.insert(0,99)

      print(li)

      输出

        [99,11,22,33,44]

    - pop (删除某个值{默认最后的值},并获取删除的值); - remove(删除列表中的指定值,左边优先)

      li=[11,22,33,44]

      v=li.pop()

      print(v)

      print(li)

      v1=li.pop(1)

      print(v1)

      print(li)

      输出

        44

        [11,22,33]

        22

        [11,33]

      li=[11,22,33,22,44]

      li.remove(22)

      print(li)

      输出

        [11,33,22,44]

p.s.  删除操作 pop / remove / del li[0] / del li[7:9] / clear

    - reverse(将当前列表进行反转)

      li=[11,22,33,22,44]

      li.reverse()

      print(li)

      输出

        [44,22,33,22,11]

    - sort

      li=[11,44,22,33,22]

      li.sort()

      print(li)

      li.sort(reverse=True)

      print(li)

      输出

        [11,22,22,33,44]

        [44,33,22,22,11]

p.s. - cmp ; - key 涉及函数,lambda表达式  内置函数sorted 函数处补充

元组tuple

  圆括号括元素,元素的一级元素不可被修改,不能被增加或者删除。一般写元祖的时候,推荐最后加逗号,不影响元组长度,逗号后面是空的。  有序。

  特性

    ——可索引

      tu=(111,'alex',(11,22),[(33,44)],True,33,44,)

      v=tu[0]

      print(v)

      输出

        111

    ——可切片

      ...

      v=tu[0:2]

      print(v)

      输出

        (111,'alex')

    ——不可修改、增加或删除

    ——可for循环,是可迭代对象

    ——字符串/列表/元组可相互转换

      s='asdfasdf0'

      li=['asdf',1231]

      tu=(123,123,'asdf')

      tu1=('asdf','asdf')

      v=tuple(s)

      print(v)

      v=tuple(li)

      print(v)

      v=list(tu)

      print(v)

      v='_'.join(tu1)

      print(v)

      输出

        ('a','s','d,'f','a','s','d,'f','0')

        ('asdf',1231)

        [123,123,'asdf']

        asdf_asdf

    ——二级或更高级元素可修改

      tu=(111,'alex',(11,22),[(33,44)],True,33,44,)

      tu[3][0]=567

      print(tu)

      输出

        (111,'alex',(11,22),[567],True,33,44,)

  两个方法

    - count 获取指定元素在元组中出现的次数

    - index 获取指定元素在元组中第一次出现的索引值

字典dict

  字典的value可以是任何值;字典的key不能是布尔值、列表和字典。  字典无序,因为无序所以没有系统生成的索引,通过键来找值。

  info={

    'k1':18,  #键值对

    'k2':True

    'k3’:[

      11,

      [],

      ()

      22,

      33,

      {

        'kk1':'vv1',

        'kk2':'vv2',

        'kk3':(11,22),  #找这里的第一个元素 v=info['k3'][5]['kk3'][0]

      }

    ]

    ‘k4’:(11,22,33,44)

     }

    info1={

      1:'asdf',

      'k1':'asdf',

      True:'123',

      [11,22];123,

      (11,22):123,

      {'k1:v1'}:123,

    }

    print(info1)

    输出

      {'k1':'asdf',1:'123',(11,22):123}

      True 1 False 0 这里True和键1重复了 key重复时只能保留一个

      布尔值、列表和字典(涉及到哈希表)不能作为字典的key,常数、元组可以

      (列表或字典若作为key会报错)

  特性

    ——通过键来找值

    ——不可切片

    ——支持del删除 键值对  del info['k1']  del info['k3'][5]['kk1']

    ——默认for循环输出里面元素,只输出key

        for item in info{.keys}()

      for item in info.values()  输出value

      for k,v in info.items()  输出key和value

——while循环不太好用,key不是常规索引

  方法

    - fromkeys

代码语言:javascript
复制
1 #!/usr/bin/env python
2 # -*- coding:utf-8 -*-
3 v=dict.fromkeys(['k1',123,'999'])
4 v1=dict.fromkeys(['k1',123,'999'],123)
5 print(v,v1)

    输出

      {'k1': None, 123: None, '999': None} {'k1': 123, 123: 123, '999': 123}

    - get

代码语言:javascript
复制
1 ...
2 dic={'k1':'v1'}
3 v=dic.get('k1')
4 print(v)
5 v=dic.get('kk1')
6 print(v)
7 v=dic.get('kk1',111)    #第一个数是想获取的key,
8 print(v)                #如果不存在结果为第二个值,
9                         #如果存在则获取其对应value

    输出

      v1

      None

      111

    - pop(如果要删除的键值对不存在,dic.pop(key,default)返回default的值); - popitem(随机删除一个键值对,dic.popitem())

代码语言:javascript
复制
1 ...
2 dic={'k1':'v1','k2':'v2'}
3 v=dic.pop('k1')
4 print(dic,v)

    输出

      {'k2': 'v2'} v1

    - setdefault(设置值,如果已经存在则不设置,获取当前key对应的value;不存在,设置,获取当前key对应的value)

代码语言:javascript
复制
1 ...
2 dic={'k1':'v1','k2':'v2'}
3 v=dic.setdefault('k1','123')
4 print(dic,v)
5 dic={'k1':'v1','k2':'v2'}
6 v=dic.setdefault('k111','123')
7 print(dic,v)

    输出

      {'k1': 'v1', 'k2': 'v2'} v1

      {'k1': 'v1', 'k2': 'v2', 'k111': '123'} 123

    - update

代码语言:javascript
复制
1 ...
2 dic={'k1':'v1','k2':'v2'}
3 dic.update({'k1':'111','k3':123})
4 print(dic)
#另一种写法:dic.update(k1=123,k3=345,k5='asdf')
  输出{'k1': 123, 'k5':'asdf','k2': 'v2', 'k3': 345}

    输出

      {'k1': '111', 'k2': 'v2', 'k3': 123}

整理

  一、数字

    int()

  二、字符串

    replace / find / join / strip / startswith / split / upper / lower / format

    **kwargs 代表 可以传 key=value 或者 传字典 **{}

代码语言:javascript
复制
1 ...
2 template='I am {name},age:{age}'
3 v=template.format(name='alex',age=19)
4 #v=template.format(**{'name':'alex','age':19})  和上面的一样效果
5 print(v)

    输出

      I am alex,age:19

  三、列表

    append / extend / insert

    索引、切片、循环

  四、元组

    忽略

    索引、切片、循环  以及元素不能被修改

  五、字典

    get / update / keys / values / items

    for,索引

    列表元组字符串字典可做in操作

代码语言:javascript
复制
1 ...
2 dic={'k1':'v1','k2':'v2'}
3 v='k1' in dic
4 print(v)

    输出

      True

  六、布尔值

    本身内存里就是0或1

    bool(...)

    None '' 0 {} [] () 都是假的

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-03-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 列表(list [])的“魔法”
    •   定义
      •   特性
        •     深灰“魔法”
      •   灰“魔法”——list类中提供的方法
        •     - append(原来值最后追加,对列表本身进行修改,而非像字符串一样,创建一个新变量添加元素)
        •     - clear(清空列表,使列表变成[])
        •     - copy((浅)拷贝)
        •     - count(计算元素出现的次数)
        •     - extend(扩展源列表)
        •     - index(根据值获取当前值索引位置,左边优先)
        •     - insert(在指定索引位置插入元素)
        •     - pop (删除某个值{默认最后的值},并获取删除的值); - remove(删除列表中的指定值,左边优先)
        •     - reverse(将当前列表进行反转)
        •     - sort
    • 元组tuple
      •   特性
        •   两个方法
        • 字典dict
          •   特性
            •   方法
              •     - fromkeys
              •     - get
              •     - pop(如果要删除的键值对不存在,dic.pop(key,default)返回default的值); - popitem(随机删除一个键值对,dic.popitem())
              •     - setdefault(设置值,如果已经存在则不设置,获取当前key对应的value;不存在,设置,获取当前key对应的value)
              •     - update
          • 整理
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档