zoukankan      html  css  js  c++  java
  • python3基本数据类型

    #============Python的标椎数据类型============
    python3有6种标准数据类型

    number  数字
    string  字符串
    tuple   元组
    list    列表
    set     集合
    dictionary 字典

    python3的6种标椎数据类型中:

    不可变数据: number(数字) string(字符串) tuple(元组)
    可变数据: list(列表) set(结合) dictionary(字典)

    #============Python的数值运算============
    #数值运算

    print(5 + 4)   #加法
    print(4.3-1)   #减法
    print(3 * 7)   #乘法
    print(2/4)     #2除以4得到一个浮点数 0.5
    print(2 // 4)  #2除以4得到一个整数 0
    print(4 % 3)   #取余
    print(2 ** 6)  #乘方

    #============Python的列表(list)============
    #列表(Python 中使用最频繁的数据类型)

    list = ['a','b','c','d','e','f']
    tinylist = [1,2,3]
    print(list)      #列出所有列表
    print(list[0])   #列出第一个元素
    print(list[1:3]) #列出第二个到第三个元素
    print(list[2:])  #列出第三个元素开始的所有元素
    print(list * 2)  #列表输出两次
    print(list[4:6]) #列出第5个元素到6个元素
    print(list + tinylist) #连接列表

    #列表设置步长----重要

    list = ['a','b','c','d','e','f','g','h','i','j']
    #索引正向:0   1   2   3   4   5   6   7   8   9
    #索引反向:-10 -9  -8  -7  -6  -5  -4  -3  -2  -1

    list[1:4:2] 表示在索引1到索引4的位置设置为步长2
    步长的格式: 变量 = [开始索引:结束索引:长度]
    步长的计算公式: 当前索引+步长=下一个索引

    print(list[1:8:3])

    首先截取的第一个元素是开始的元素即: b
    第二个截取的元素: 第一个元素索引(1)+步长=第二个元素索引 1+3=4 所以第二个截取的元素为: e
    第三个截取的元素: 第二个元素索引(4)+步长=第三个元素索引 4+3=7 所以第三个截取的元素为: h
    第四个截取的元素: 第三个元素索引(7)+步长=第四个元素索引 7+3=10 上面可以看出我们是没有10这个索引的,后面的就不会再截取了
    如果你的元素很多,就会按照以上的方法一直截取,直到最后无法再截取
    以上就是截取的流程,所以我们一共就截取了三个元素: b e h

    步长为负数时就从后往前截取,计算公式不变
    步长为负数时,省略开头索引,对应的是从后往前的第一个元素开始截取
    步长为负数时,省略结尾索引,对应的是从前往后的第一个元素为结束

    print(list[:2:-3]) #按照公式截取的元素为: j g d
    print(list[7::-2]) #按照公式截取的元素为: h f d b

    #============Python的元组(tuple)============
    元组与列表类似,不同之处在于元组的元素不能更改,元组写在"()"中,元组的元素之间用","隔开

    tuple = ('lakers','lebron','james','23','25.4')
    wade = ('heat','wade','3')
    print(tuple)      #输出元组的所有元素
    print(tuple[0])   #输出元组的第一个元素
    print(tuple[1:4]) #输出从第二个元素到第四个元素
    print(tuple[2:])  #输出从第三个元素开始的所有元素
    print(tuple * 2)  #输出两次元组
    print(tuple + wade) #连接元组

    输出结果:

    ('lakers', 'lebron', 'james', '23', '25.4')
    lakers
    ('lebron', 'james', '23')
    ('james', '23', '25.4')
    ('lakers', 'lebron', 'james', '23', '25.4', 'lakers', 'lebron', 'james', '23', '25.4')
    ('lakers', 'lebron', 'james', '23', '25.4', 'heat', 'wade', '3')

    元组与字符串类型,索引都是从"0"开始,"-1"从末尾开始的位置,截取方式与字符串相似
    重要: 虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表

    tuple = (['lebron','james'],['lakers','23'])
    print(tuple)
    print(tuple[0])

    可以看出元组中包含了一个列表,这时列表就成了元组的元素,在列表中我们可以改变列表中元素

    tuple = (['lebron','james'],['lakers','6'])
    print(tuple)
    print(tuple[1])

    构造包含0个或1个元素的元组比较特殊,所以有一些额外的语法规则:

    tuple = () #空元组
    tuple = (23,) #一个元素时,还是需要在后面加","号

    string、list和tuple都属于sequence(序列)

    注意:
        与字符串一样,元组的元素不能修改
        元组也可以被索引和切片,方法一样
        注意构造包含"0"或"1"个元素的元组的特殊语法规则
        元组也可以使用"+"操作符进行拼接

    #============Python的集合(set)============
    集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员
    基本功能是进行成员关系测试和删除重复元素
    可以使用大括号"{ }"或者"set()"函数创建集合,注意:创建一个空集合必须用"set()"而不是"{ }",因为"{ }"是用来创建一个空字典
    创建格式:

    parame = {value01,value02,...}
    或者
    set('value')

    重要: 使用集合时,重复的元素会被自动去掉,只显示一个

    a = {'james',23,'lakers','wade',3.0,'rose',23}
    print(a)

    输出结果: 集合元素23只显示了一次

    {3.0, 'lakers', 'wade', 'rose', 'james', 23}

    set()中有重复的元素时也会自动去掉

    b = set('lebroneeeeeeeeee')
    print(b)

    输出结果:

    {'n', 'e', 'r', 'l', 'b', 'o'}

    #集合的运算

    a = set('abcdefghi')
    b = set('adcsheshou')
    print(a)
    print(a - b)  #a和b的差集(将a的集合中有的但b集合中没有的取出)
    print(b - a)  #b和a的差集(将b的集合中有的但a集合中没有的取出)
    print(a | b)  #a和b的并集(a和b所有的)
    print(a & b)  #a和b的交集(a和b都有的)
    print(a ^ b)  #a和b中不同时存在的元素(相当于上述两个差集结果的总和)

    输出结果为:

    {'h', 'd', 'e', 'f', 'g', 'b', 'c', 'i', 'a'}
    {'b', 'i', 'f', 'g'}
    {'u', 'o', 's'}
    {'h', 's', 'd', 'e', 'f', 'g', 'u', 'b', 'o', 'c', 'i', 'a'}
    {'h', 'd', 'e', 'c', 'a'}
    {'s', 'f', 'g', 'u', 'b', 'o', 'i'}

    #判断元素是否存在,成员测试

    name = {'james','wade','kobe','lrving'}
    if 'james' in name:
        print('james在集合中')
    else :
        print('james不在集合中')

    输出结果为:

    james在集合中

    #============Python的字典(dictionary)============
    字典(dictionary)是Python中另一个非常有用的内置数据类型
    列表是有序的对象集合,字典是无序的对象集合,两者之间的区别在于: 字典当中的元素是通过键来存取的,而不是通过偏移存取
    字典是一种映射类型,字典用"{ }"标识,它是一个无序的"键(key):值(value)"的集合
    重要: 键(key)必须使用不可变类型,也就是说"键(key)"只能使用"数字,字符串,元组"这三种数据类型
    在同一个字典中,键(key)必须是唯一的

    test = {} #空字典
    test['one'] = '字典一'
    test[2] = '字典二'
    full = {'name':'james','year':'34','number':'23','web':'www.james.com','cj':'25.4'}
    
    print(test['one'])   #输出键为'one'的值
    print(test[2])       #输出键为'2'的值
    print(full)          #输出完整的字典
    print(full.keys())   #输出所有键
    print(full.values()) #输出所有值
    print(full['name'])  #输出full字典中键为'name'的值

    #输出结果为:

    字典一
    字典二
    {'name': 'james', 'year': '34', 'number': '23', 'web': 'www.james.com', 'cj': '25.4'}
    dict_keys(['name', 'year', 'number', 'web', 'cj'])
    dict_values(['james', '34', '23', 'www.james.com', '25.4'])
    james

    #构造函数"dict()"可以直接从键值对序列中构建字典如下:

    >>> dict([('james', 1), ('wade', 2), ('lrving', 3)])
    {'james': 1, 'wade': 2, 'lrving': 3}
    >>>
    
    >>> {x: x**2 for x in (2, 4, 6)}
    {2: 4, 4: 16, 6: 36}
    >>>
    
    >>> dict(james=1, wade=2, lrving=3)
    {'james': 1, 'wade': 2, 'lrving': 3}

    重要:
        字典类型也有一些内置的函数,例如clear() keys() values()等
        字典是一种映射类型,它的元素是键值对
        字典的关键字必须为不可变类型,且不能重复
        创建空字典使用{}


    #============Python数据类型转换============
    有时候,需要对数据内置的类型进行转换,数据类型的转换,只需要将数据类型作为函数名即可

  • 相关阅读:
    leetcode第35题--Valid Sudoku
    leetcode 34 Search Insert Position
    leetcode第33题--Search for a Range
    leetcode第32题--Search in Rotated Sorted Array
    leetcode第31题--Longest Valid Parentheses
    leetcode第30题--Next Permutation
    leetcode第29题--Substring with Concatenation of All Words
    leetcode第28题--Divide Two Integers
    leetcode第27题--Implement strStr()
    17_7_7 JDBC存储过程 + 事务
  • 原文地址:https://www.cnblogs.com/lrvingli/p/11771312.html
Copyright © 2011-2022 走看看