zoukankan      html  css  js  c++  java
  • 2.数据类型【列表和字典】

    数据类型

    字符编码:

    我们通常还是用GBK指代中文windows内码

    usf-8是对编码的压缩和优化,在编写python的时候需要声明给python解释器(说了python是解释型语言),使用什么编码来执行源代码:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-

    注释:

    单行注释#
    多行注释 ``` ```

    用户输入:

    input()
    需要限制输入类型的时候,在input外面套接一个数据类型例如int(input())

    输入密码时,如果想要不可见,需要利用getpass模块中的getpass方法:

    import getpass
    pwd = getpass.getpass('enter your pwd:')

    数据类型

    在这里穿插解释数据类型

    1. 数字
      int整型
      long长整型:在python2.2以后的版本里,python在长整数据后面不加L也不会有太大的问题
      float浮点型
      complex复数

    2. 布尔值
      真/假

    3. 字符串
      'hello world'

    • 字符串的格式化输出

    name = 'scott'
    print('i am %s'%name)
    
    #字符串是%s ; 整数%d ; 浮点数 %f
    • 字符串操作方法:

    print(name.strip()) #脱

    print(name.split()) #分割

    print(name.len()) #长度

    print(name.index('s')) #索引

    name1 = 'scott,jack,jerry'
    
    print(name[0:4])
    #输出结果为‘scot’
    #说明python切片的一条规则
    
    #**顾头不顾尾**
    #范例:
    print(name [-6:])
    print(name [-6:1])
    print(name [0::3])   #隔几个字符取一次
    

    列表和字典

    list列表

    • 定义列表
    >>> name = ['scott','jack','jerry','peter']
    • 添加元素(append)
    >>> name.append('super')
    >>> name
    ['scott', 'jack', 'jerry', 'peter', 'super']
    • 定位添加元素(insert)
    >>> name.insert(2,'alex')
    >>> name
    ['scott', 'jack', 'alex', 'jerry', 'peter', 'super']
    • 定位删除元素
    >>> name.pop(3)
    'jerry'
    >>> name
    ['scott', 'jack', 'alex', 'peter', 'super']

    不添加参数,默认删除最后一个

    >>> name.pop()
    'super'
    • 在列表中定位元素位置
    >>> name.count('jack')
    1
    list的深浅拷贝
    ## 计算结果以及为什么?
    a = [1, 2, [3, "hello"], {"egon": "aigan"}]
    # 形参a指向一块储存列表的内存位置
    b = a[:]
    # 形参b指向相同的位置
    
    a[0] = 5
    # 原本a的列表修改了某个值,a指向别的内存地址,该地址存储着新的列表
    # a修改了某个一层列表元素的位置,b不受影响
    a[2][0] = 666
    # a修改了某个二层列表元素的位置,b受到影响
    print(a)
    print(b)
    # 知识点:深浅拷贝,b = a[:]让b获得了a的值,但是二者并不公用一块内存地址
    # 但是两个列表中的二级列表,指向的是同一块内存地址,
    # 所以当两个列表中,一级元素发生改变的时候,互不影响,但当二级元素发生改变的时候,二者同时发生变化。
    # 有用于强制深拷贝的模块

    dict 字典

    key Value 键值
    key 必须唯一

    • 字典为什么是无序的?
    name= {
        9527:{'name':'scott','age':23},
        9528:{'name':'jack','age':24},
        9529:{'name':'jerry','age':22},
        9530:{'name':'peter','age':22}
        }
    • 取值
      print(name[9527]['age'])


    • name[9526] = 'yage'


    • print(name.pop(9526)) #---会返回他的值
      print(name.popitem()) #---随机删除一个

      • 修改某个字典元素
        name[9528][0] = 'super jack'

      • 在某个字典中增加一个数字
        name[9529].append(28)

    print(name.get(9527))
    print(9527 in name)
    print(name.keys())
    print(name.values())
    • loop

      • 只打印key
        for i in name:
        print(i)

      for i in name.items():
      print (i)

      for k,v in names.items():
      print(k,v)

    • 更新

    dict2 = {
        9523:{'name':'sco','age':23}
        9524:{'name':'jac','age':24}
        9525:{'name':'jer','age':22}
        9536:{'name':'pet','age':22}
        }

    .update()
    如果dict.update(dict2)
    如果dict2中有dict已经有的键值,就更新覆盖该键值

    <wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">

  • 相关阅读:
    C语言printf()输出格式大全
    C语言ASCII码、运算符优先级、转义字符
    通过Navicat for MySQL远程连接的时候报错mysql 1130 的解决方法
    mysql kill process解决死锁
    常用的二种修改mysql最大连接数的方法
    show processlist结果筛选
    数据库连接driverClass和jdbcUrl大全
    在实例中引用模式文档
    在Eclipse中导入dtd和xsd文件,使XML自动提示
    Linux下Java安装与配置
  • 原文地址:https://www.cnblogs.com/scott-lv/p/7468912.html
Copyright © 2011-2022 走看看