2.Python3数据结构

作者: KaelQ | 来源:发表于2016-07-20 11:10 被阅读508次

    1.python3基本数据结构

    1.1 数字类型

    • 数字类型(number)分为布尔、整数、浮点数和复数。

    • 布尔类型(bool)为True(1)和False(0)的组合。

    bool1=True
    bool2=False
    

    注意:在Python2中是没有布尔型的,它用数字0表示False,用1表示True。到Python3中,把True和False定义成关键字了,但它们的值还是1和0,它们可以和数字相加。

    • 整数类型(int)为整数
    int=20
    
    • 浮点数类型(float)为浮点数。
    float=2.2
    
    • 复数类型(complex)为复数,复数的实部a和虚部b都是浮点型
    complex=1+4j
    

    1.2 数字类型的方法

    • 运算
    # 数字类型运算
    a = 1
    b = 3
    print(a + b)#加法
    print(a - b)#减法
    print(a / b)#除法
    print(a * b)#乘法
    print(a // b)#整除
    print(a % b)#求余
    print(a ** b)#乘方
    

    输出为:

    4
    -2
    0.3333333333333333
    3
    0
    1
    1
    

    在混合计算时,Python会把整型转换成为浮点数。 例如:

    a=1.0
    b=2
    print(a+b)
    

    结果就是3.0了。

    2.python3容器

    • python的容器分为序列、映射以及集合。

    2.1序列

    • 序列(sequence)中的每个元素都有自己的编号。序列包括列表、元组、字符串等。

    2.1.1 列表和元组

    • 列表和元组都是一种类似的序列,区别列表可以修改,元组不能修改。
    • 列表(list),使用[,]建立列表
    list1=['hello','world']
    
    • 元组(tuple),使用(,)建立元组,只含一个值的元组,必须加个逗号(,);
    t1=(1,2)
    t2=1,2,3
    t3=(1,)
    

    2.1.2 字符串

    • Python中的字符串用单引号(')、双引号(")或三引号(三个单引号''')括起来。而单双引号是为了去掉转义字符\的。字符串不能被改变,即不能向字符串某位赋值。
    #这种情况下是一样的
    a='str'
    b="str"
    c='''str'''
    
    • 单引号
    # 这种情况下不需要转义字符\
    a='我"们"这个'
    
    • 双引号
    # 这种情况下不需要转义字符\
    a="let's go"
    
    • 三引号
    # 这种情况下不需要转义字符\
    a='''我们"这"'个' '''
    # 这种情况下保留换行
    a='''我
         换
         行
         了'''
    

    2.1.2.1 字符串方法

    • 字符串不发生转义,使用r表示原始字符串
    str="run\ner"
    #这样会输出run
    #          er
    str=r"run\ner"
    #这样会输出run\ner
    
    • 格式化
      1.字符串格式化使用字符串格式化操作符即百分号%来实现。
    str1='Hello,%s' % 'world.'
    

    2.格式化操作符的右操作数可以是任何东西,如果是元组,则如下:

    strs=('Hello','world') #元组
    str1='%s,%s' % strs
    

    3.对数字进行格式化处理,通常需要控制输出的宽度和精度:

    str1='%.2f' % 3.1415926 #精度2
    str1='%10f' % 3.1415926 #字段宽10
    

    2.1.3 序列通用方法

    • 索引
      索引值以 0 为开始值,-1 为从末尾的开始位置。
    str1='Hello'
    nums=[1,2,3,4]
    t1=(123,234,345)
    print(str1[0])
    print(nums[1])
    print(t1[2])
    

    输出为:

    H
    2
    345
    
    • 分片
      分片操作用来访问一定范围内的元素。分片通过冒号相隔的两个索引来实现。
    nums='1234567890'
    print(nums)
    print(nums[1:5])
    print(nums[1:])
    print(nums[-3:-1])
    print(nums[-3:]) 
    print(nums[:]) #复制整个序列
    

    输出为:

    1234567890
    2345
    234567890
    89
    890
    1234567890
    

    默认步长为1,可以对步长进行调节。

    print(nums)
    print(nums[0:10])  # 默认步长为1 等价于nums[1:5:1]
    print(nums[0:10:2])  # 步长为2
    print(nums[0:10:3])  # 步长为3
    print(nums[0:10:0])  #步长为0
    print(nums[-3:-1:-1])  # 步长为-2
    

    输出为:

    1234567890
    1234567890
    13579
    1470
    
    • 序列相加
      序列相加只能相同类型的序列进行相加。
    str1='Hello'
    str2='world'
    print(str1+str2)
    lista=[1,2]
    listb=[3,4]
    print(lista+listb)
    

    输出为:

    Helloworld
    [1, 2, 3, 4]
    
    • 乘法
      使用*符号对序列进行叠加。
    str1='Hello'
    print(str1*2)
    

    输出为:

    HelloHello
    
    • 成员资格
      in运算符会用来检查一个对象是否为某个序列(或者其他类型)的成员(即元素):
    str1='Hello'
    print 'H' in str1 
    print 'h' in str1 
    

    输出为:

    True
    False
    
    • 长度、最小最大值
      通过内建函数len、max和min可以返回序列中所包含元素的数量、最大和最小元素。
    str1='Hello'
    print len(str1) 
    print max(str1)
    print min(str1)
    

    输出为:

    5
    o
    H
    

    2.2 字典

    • 字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。
      键(key)必须使用不可变类型,即数字、字符串、元组。
      在同一个字典中,键(key)必须是唯一的。
      代码如下:
    a={}
    a[1]=1
    a['a']='a'
    a[(1,2)]=1
    a[2]=set([1,2])
    print(a)
    b={'2':'a',3:3}
    print(b)
    

    输出为:

    {(1, 2): 1, 1: 1, 2: {1, 2}, 'a': 'a'}
    {3:3,'2':'a'}
    

    2.3 集合

    • 集合(set)是一个无序不重复元素的序列。
      会自动删除重复元素。
      代码如下:
    seta=set([1,2,3])
    setb={2,3}
    print(seta,setb)
    

    输出为:

    {1, 2, 3} {2, 3}
    

    2.3.1 集合方法

    a={1,2,3}
    b={2,3,4}
    print(a - b)     # a和b的差集
    print(a | b)     # a和b的并集
    print(a & b)     # a和b的交集
    print(a ^ b)     # a和b中不同时存在的元素
    

    输出为:

    {1}
    {1, 2, 3, 4}
    {2, 3}
    {1, 4}
    

    3.总结

    • 总结速查表格
    类型 子类型 构建方式 表达含义
    数字类型 bool布尔类型 True False 判定True、False
    数字类型 int类型 a=2 整数
    数字类型 float a=2.0 浮点数
    数字类型 complex a=1+2j 复数
    容器-序列 列表list a=[1,2] 可变的序列
    容器-序列 元组tuple a=(1,2) 不可变的序列
    容器-序列 字符串string a='abcd' 方便使用的序列
    容器-字典 字典类型dict a={'1':'a'} 主键唯一的键值对
    容器-集合 集合类型set a=set([a,b])或a={a,b} 元素不重复的集合

    相关文章

      网友评论

      • tzz12:数字类型,布尔,整数,浮点,复数。四种。boole,int,float,complex.
        运算有七种方法:+ - / * // % **
        混合计算时,整型与浮点联合运算时,自动变为浮点。
        列表为【】,可改变。元组为(),不可改变。元组只有一个时,( ,)字典{},有两个内容,一个键,一个值,键是不可改变的,用元组、字符串,数字来表示。
      • 表表哥:好文
        KaelQ:@表表哥 谢谢~

      本文标题:2.Python3数据结构

      本文链接:https://www.haomeiwen.com/subject/gijvjttx.html