zoukankan      html  css  js  c++  java
  • Python基础01 基本数据结构(上)

    Python基础01 基本数据结构(上)

    一、概述

      Python基本数据结构包含以下几种类型:字符串,列表,元组,字典,集合Python支持一种数据结构的基本概念,名为容器。容器基本上就是可包含其他对象的对象。两种主要的容器是序列(列表、元组)和映射(字典)。集合是既不是序列也不是映射的容器。  

    1、字符串是一种重要的Python内置序列,具有序列基本操作(索引、切片、相乘、长度和最大(小)值)。字符串是不能修改。

    2、Python常用的序列:列表和元组,

      列表是一种常用的Python内置序列,具有序列基本操作(索引、切片、相乘、长度和最大(小)值)。列表是可以更改的,如中途增加元素。

      元组:是一种常用的Python内置序列,具有序列基本操作(索引、切片、相乘、长度和最大(小)值)。元组是不能修改的。

    3、字典是通过名称来访问其各个值的数据结构,这种数据结构称为映射。字典包含键和值,键的类型包含数(整数,浮点数),字符串和元组等任何不可变的类型(键不可以是列表)

    二、序列的基本操作

    1、索引,序列中的所有元素都有一个编号,Python语言当中第一个元素的索引为0。通过正数索引时,Python从左往右数获取对应编号的元素值;通过负数索引,Python从

    右往左获取对应编号的元素值。

    nun[0]

    2、切片,通过索引访问特定范围的数据元素。指定范围包含第一个索引对应元素值,第二个索引为切片后剩余元素中的第一个元素的编号,所以第二个索引的元素值不包含在切片中。

    num[2:-1]    # 包含num[2],不包含num[-1](最右边的元素值)
    num[2:] # 包含num[2]到最右边的元素值
    num[:-1] # 包含num[0]到num[-2]的元素值
    num[:] # 包含整个序列
    num[1:10:2] # 切片步数为2

    3、相乘,将序列与n相乘,是重复序列n次来创建一个新的序列

    [2,3] * n

    4、成员资格检查,检查序列中是否包含给定值,或者检查字典中是否包含给定的键。成员资格检查使用布尔运算符 in

    5 in range(10)

    5、内置函数获取序列的长度和最大(小)值

    print(len([1, 2]))  # 使用函数len返回序列包含的元素个数
    print(max([1, 2]))  # 使用函数max返回序列最大值
    print(min([1, 2]))  # 使用函数min返回序列最小值

    笔记:

    1、字符串和序列是通过索引访问各个值,而字典通过名称(键名)访问各个值

    2、字典成员资格检查查找的键而不是值,而列表成员资格检查是直接查找值而不是索引

    3、容器,容器是包含其他对象的对象。容器是一种数据结构的基本概念

    4、内置函数 list(实际是一个类) 可以使用任意序列作为参数。字符串作为 list 参数时,可以将字符串转化为字符列表;通过内置函数 join 可以将字符列表转化为字符串。

    5、内置函数 tuple 将任意序列作为参数,并将其转换为元组返回,如果又来的序列就是元组,则原封不动返回该元组。

    语法1-字符串方法、列表方法、字典方法

    字符串类型的数据具有以下方法,对象可以通过 “对象.方法” 调用方法。内置函数 dir 返回参数的属性、方法列表。

    通过print(dir(str))输出字符串类型的数据的内置方法:

    有点奇怪的是代码:import string print(dir(string)) 显示的内置方法如下:string是一个模块

    列表的内置方法 print(dir(list))

    元组的内置方法 print(dir(tuple))

    字典的内置方法 print(dir(dict)),dicr是所有字典所属的类型。

    笔记:

    1、方法sort有两个参数:key,reverse;key为排序依据。参数key设置为一个自定义函数 x.sort(key = 函数名),提高排序的灵活性;参数reverse决定sort是降序(reverse = ture)还是升序(reverse = false)

    语法2-基本的列表操作、基本的元组操作、字典操作

    基本的列表操作

    1、修改列表,给列表赋值

    num[0] = 2

    2、删除列表元素

    del num[0] = 2

    3、切片赋值

    num = ['p','o','l','y']
    num[1:] = list('ython')
    # 输出  ['p','y','t','h','o','n']

    基本的元组操作

    元组不可以修改,所以元组的操作除创建元组和访问元组,可执行操作不多。

    创建一个只包含一个值的元组:

    42,
    (42,)
    # 以上两种方式都可以创建一个只包含一个只的元组(42,)

    三、字典操作

    创建字典

    1、以两个花括号 {}b表示,里面包含的键和值用:分隔。键的类型包含数(整数,浮点数,当值相等时表示同一个键),字符串和元组(元组里面的元素需要是字符串和数等不可变的元素,不能是列表或者字典等可变的元素)等任何不可变的类型(键不可以是列表)。

    x = (['a'], 42)
    print(x)
    y = {'a': 'b', (1, 2): 'c', 42: 'age'}
    print(y)
    z = {'a': 'b', ([1], 2): 'c', 42: 'age'}
    print(z)

    2、函数 dict

    函数 dict 可以从其他映射或者键-值对序列创建字典

    items1 = [('number', 2)] # 键-值对,如果items1 = ['number', 2]就会出bug
    d = dict(items1)
    print(d)
    
    items2 = dict(numbers='2')
    print(items2)
    
    items3 = dict(numbers=2)
    print(items3)

    3、字典方法 copy 和 fromkeys

    dict.formkeys(seq[,val]):键来自序列,而值为val(默认为 None)

    y = x.copy(),浅复制

    语法3-设置字符串的格式

    1、%

    描述:转换说明符(如%s)指出要将设置的值插入哪个位置,s意味着将按字符串进行格式设置。

    语法:指定字符串(格式字符串) % 指定要设置其格式的值

    foo = 'hello,%s.%s are you!'
    value = ('pony', 'how')
    print(foo % value)
    print(foo)
    x = foo % value
    print(x)

    笔记:

      模板字符串:用string模块里的Template

    from string import Template
    a = Template('would it be the ${key1} when we meet in ${key2}')
    print(a.substitute(key1='same', key2='heaven'))
    # 此部分代码来源:https://www.cnblogs.com/xiaxiaoxu/p/9744228.html
    %b     二进制整数
    %s 字符串 %c 字符,将整数解读为Unicode码点 %d 十进制(整数)%u 无符号整数 %o 八进制整数 %x 十六进制整数 %X 十六进制整数大写 %e 使用科学计数法来表示小数,用e表示指数 %E 与e相同,但用E表示指数 %f 将小数表示为定点数 %g 自动在%f和%e做出选择。这是默认用于小数的说明符,默认情况下至少有1位小数 %G 与g相同,但使用大写来表示指数和特殊值
    % 将数表示为百分比值%% 文字%

    2、format

    描述:方法format 变量.format(参数):'{page!r:10 }'.format( )

          '{page!r:10 }'的组成部分:字段名page,字段名可以为标识符或者索引,即字段名可以是指定值或者指定值的某个值。

                 转换标志!r,跟在 ! 后面的单个字符,包含 r , s , a。转换标志使对象按照指定的类型的字符串

                 格式说明符:10,跟在 :h 后面的表达式,信息包含;显示字符,字段宽度,数的精度,格式类型

    from math import pi
    print("{pi:<+010.2f}".format(pi=pi)) # 对齐方式 < ,添加标志 + ,显示字符:0, 字段长度:10,数的精度:10, 格式类型:f
    print("{pi!s},{pi!r},{pi!a}".format(pi='π'))

    笔记:

    1、{{,}} 可以转义输出 {,}

    2、字符串的格式化要设置格式的值可以放在字典中,条件是字段名都是包含在字典中的键

    y = {'a': 'b', (1, 2): 'c', 42: 'age'}
    print('would it be the {a}'.format_map(y))
    print('would it be the {42}'.format_map(y))

  • 相关阅读:
    Filter 过滤器
    struts2 action接收请求参数和类型转换
    Struts2入门学习
    struts2请求参数校验
    IntelliJ IDEA 使用心得与常用快捷键
    关于动态代理详解
    web.xml文件详解
    关于mysql插入数据异常
    关于控制台输出 警告 log4j:WARN No appenders could be found for logger
    Hive load from hdfs 出错
  • 原文地址:https://www.cnblogs.com/yinminbo/p/11306686.html
Copyright © 2011-2022 走看看