Python数据类型

房东的猫 提交于 2019-12-04 21:01:43

# 列表 #

    #查  切片 []

        print(a)#打印所有列表
        print(a[1:3]) #从索引1开始到3结束,但是不包括3
        print(a[1::2]) #从索引1开始到结束,步长为2,隔一个去取
        print(a[1:-1]) #从索引1开始到倒数第二
        print(a[1::-1]) #从索引1开始到结束,从右往左取
        print(a[-2::-1]) #从右往左取,从倒数第二个开始到最左边(结束)
        print(a[1::-1]) #从右往左取,从索引为1开始到结束
        
        b=a.count("ligang")#根据内容查找该元素在列表中出现的次数(计数)
        print(b)
        inde=a.index('sanpang')#根据内容找其对应的位置(索引)
        print(inde)
        conten='sanpang' in a#in的用法,判断元素是否在列表中,在就返回True,否则返回False
        print(conten)

    #添加 append insert

        a.append('wangyuan')#直接追加在列表最后面
        a.insert(2,'liyifen')#设置索引,指定添加位置,可以添加到任意位置
        print(a)
        a.extend(t)#扩展列表,将2个列表合并,这里将t列表融入到a列表中
        print(a)


    #修改

      a[1]='wangmei'#根据a[index]取出列表中的元素,然后重新赋值
        print(a)
        a[1:4]=['a','b']#切片取出列表中的元素,取出元素为列表,赋值也需要列表,如果重新赋值的元素个数小于取出的元素个数,则默认删除
        print(a)

    #删除 remove pop del

        remove("内容")
        a.remove('wuchao')#根据内容删除,不能一次删多个
        print(a)

        pop(index)#不加索引默认删除列表的最后一个元素
        a.pop(1)#根绝索引删除
        b=a.pop(2)#pop删除之后会返回删除的内容
        print(a)

        del a, del a[index]
        del a[1]#直接根据索引删除内容、
        print(a)
        del a#直接删除列表a

        a.clear() 清空列表中的元素
        print(a)

    #排序

        t.sort()#排序,默认升序
        print(t)
        a.reverse()#排序,将原有的列表元素倒置
        print(a)1
        t.sort(reverse=True)#先将列表t排序,在倒置,reverse默认为False
        print(t)

    #身份判断

        tp=type(a) is list#判断a的类型是否为列表,是返回True,否则返回False
        print(tp)

#元组#
    Python 的元组与列表类似,不同之处在于元组的元素不能修改。
    元组使用小括号,列表使用方括号。
    元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
    元组与字符串类似,下标索引从0开始,可以进行截取,组合等。
    ## 创建空元组

 tup = ()

 

 

    ##元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用:
        

tup1 = (5,)

 

    #访问元组,元组可以使用下标索引来访问元组中的值

        print(tup1[2])#读取第三个元素
        print(tup2[2:6])#截取元素,从第三个开始到第6个元素不包括第6。
        print(tup2[-2])#反向读取;读取倒数第二个元素

    #修改元组,元组中的元素值是不允许修改的,但我们可以对元组进行连接组合

        tup3 = tup1+tup2
        print(tup3)

 


    #删除元组,元组中的元素值不允许删除,但可以使用del语句来删除整个元组

    del tup3

   

   #in 语句,存在返回true,不存在返回false

    print(1 in tup3)

   

   #元组运算符,与字符串一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组

        len((1, 2, 3))            结果3 #计算元素个数
        (1, 2, 3) + (4, 5, 6)    结果(1, 2, 3, 4, 5, 6)    #连接
        ('Hi!',) * 4            结果('Hi!','Hi!','Hi!','Hi!')#复制
        3 in (1, 2, 3)            结果True    #元素是否存在
        for x in (1, 2, 3): 
            print (x,)            结果1 2 3    #迭代

 



    #元组内置函数

        print(len(tup3))#元组tup3的长度
        print(max(tup2))#读取元组tup2中的最大值,只能比较数值
        print(min(tup2))#读取元组tup2中的最小值,只能比较数值
        print(tuple(list))#将列表转换为元组

 

 

# 字典 #

    字典是另一种可变容器模型,且可存储任意类型对象;无序,键唯一。
    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
        d = {key1 : value1, key2 : value2 }
    键必须是唯一的,但值则不必。
    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
    一个简单的字典实例:
        dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

 



    #访问字典里的值

        #把相应的键放入到方括号中
        dic = {"name":"ccy","age":23,"address":"安徽"}
        print(dic["name"],dic["age"])#根据键取值

 



    #字典的修改

        #向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
        dic["age"]=33#键存在,不改动,修改字典中相应的键对应的值
        print(dic)#此时对应的键值为33
        dic["sex"]="男"#键不存在,在字典中中增加新的键值对
        ret = dic.setdefault("age",33)#键存在,不改动,返回字典中相应的键对应的值
        print(ret)  #23
        ret1 = dic.setdefault("sex","男")#键不存在,在字典中中增加新的键值对,并返回相应的值
        print(dic)#{'name': 'ccy', 'age': 23, 'address': '安徽', 'sex': '男'}
        print(ret1) #男
        
        print(dic.keys())#返回字典中所有的键
        print(dic.values())#返回字典中所有的值
        print(dic.items())#返回字典中所有的键值对,以列表形式返回
        dic.update(dic1)#将两个字典拼接,如果键存在,则替换值,键不存在,则直接后面添加

 




    #字典的删除

        #能删单一的元素也能清空字典
        dic.clear() # 清空字典
        del dic['name'] #删除字典中指定键值对
        del dic #删除整个字典
        print(dic.pop("name"))#删除字典中指定键值对,并返回该键值对的值
        ret = dic.popitem()#删除最后一组键值对,并以元组方式返回值

 



    #字典的其他用法

        #in 的用法
        print(5 in dic)#判断参数5在不在字典dic里面,存在返回True,不在返回False
        

        #字典迭代,for用法
        for i in dic:
            print(i,dic[i])#键值一一对应,高效
        
        for i,v in dic.items():#键值一一对应,需要Items转换dict_items类型,较慢
            print(i,v)

        #dict.get()返回指定键的值,如果值不在字典中返回默认值 None。
        dict = {'Name': 'Runoob', 'Age': 27}
        print ("Age 值为 : %s" %  dict.get('Age'))
        print ("Sex 值为 : %s" %  dict.get('Sex', "NA"))

        #len(dict) 计算字典元素个数,即键的总数
        #str(dict) 输出字典,以可打印的字符串表示
        #type(dict) 返回输入的变量类型,如果变量是字典就返回字典类型。


#字符串(String)#

        字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。
        str = "this is bnanana"
        print(str*4)#字符串的乘运算
        print(str[4:])#字符串的切片,截取
        print(str[4::-1])#字符串的反向切片,截取
        print("123"+str)#字符串用“+”进行拼接
        #in 的用法\not in 则相反
        print("i" in str)#判断"i"是否在字符串str里,在的话返回true,否则返回false
        
        #原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
        print(R"456\n123")#原始字符串,相当于转义了\n
        print(r"456\n123")#原始字符串,相当于转义了\n

# 字符串格式化输出: #
    占位符:
       %s  s = string
       %d  d = digit 整数
       %f  f = float 浮点数,约等于小数
    

    试例:
    name = input("Name:")
    age = int(input("Age:"))
    job = input("Job:")
    salary = input("Salary:")

    if salary.isdigit(): #长的像不像数字,比如200d , '200'
        salary = int(salary)
    #else:
        #exit("must input digit") #退出程序

    msg = '''
    --------- info of %s --------
    Name: %s
    Age : %d
    Job : %s
    Salary: %f
    You will be retired in %s years
    -------- end ----------
    ''' % (name,name ,age ,job ,salary, 65-age )

    print(msg)
## python字符串格式化符号 ##
        符号        描述
        %c        格式化字符及其ASCII码
        %s        格式化字符串
        %d        格式化整数
        %u        格式化无符号整型
        %o        格式化无符号八进制数
        %x        格式化无符号十六进制数
        %X        格式化无符号十六进制数(大写)
        %f        格式化浮点数字,可指定小数点后的精度
        %e        用科学计数法格式化浮点数
        %E        作用同%e,用科学计数法格式化浮点数
        %g        %f和%e的简写
        %G        %f 和 %E 的简写
        %p        用十六进制数格式化变量的地址

## 格式化操作符辅助指令 ##
        符号          功能
        *          定义宽度或者小数点精度
        -          用做左对齐
        +          在正数前面显示加号( + )
        <sp>      在正数前面显示空格
        #在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
        0          显示的数字前面填充'0'而不是默认的空格
        %          '%%'输出一个单一的'%'
        (var)      映射变量(字典参数)
        m.n.      m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

## 字符串的内置方法 ##
        #join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
        
        print(str.count("i"))#统计元素个数
        print(st.endswith('tty3')) #  判断是否以某个内容结尾
        print(st.startswith('he')) #  判断是否以某个内容开头
        print(str.center(50,'*'))#居中,指定50字符,不够用指定的数据代替
        print(str.find("i"))#查找字符串中第一个元素,并返回其索引值,未找到则返回-1
        print(str.rfind("i"))#从右边查找字符串中的第一个元素,并返回其索引值,未找到则返回-1
        print(str.index("i"))#跟find一样,找到返回一个索引值,找不到报错

        #格式化输出.format  / .format.map     
        #str1 = "my {name} is {who} and {age} 岁"
        print(str1.format(name="chen",who="ccy",age="12"))#格式化输出
        print(st.format_map({'name':'alex','age':22}))#格式化输出的,传入的是键值对
        print('My tLtle'.lower())#将字符串全部小写
        print('My tLtle'.upper())#将字符串全部大写
        print(str.islower())#判断字符串是否全小写
        print(str.isupper())#判断字符串是否全大写
        print('\tMy tLtle\n'.strip())#
        print('My title title'.replace('itle','lesson',1))#
        print('My title title'.split('i',1))#
        print(str.isalnum())#判断字符串是否是一个数字,是的话返回true,不是则返回一个false
        print(str.isnumeric())#如果字符串全是数字则返回True,否则返回false
        print(str.isspace())#如果字符串全为空格,则返回True,否则为false
        print('My title title'.title())#每个元素的首字母大写
        print(str.replace("i","d",1))#将指定的字符i替换成d,1表示替换的个数,默认全部

        #strip()方法用于移除字符串头尾指定的字符(默认为空格)或字符序列,注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符
        print(str.strip("*"))#删除字符串左右指定的字符
        print(str.lstrip("*"))#删除字符串左边指定的字符
        print(str.rstrip("*"))#删除字符串右边指定的字符
        print(str.split(" ",1))#split()通过指定分隔符对字符串进行切片,1表示只对一个分隔符切片

 


 

# 字典 #
    字典是另一种可变容器模型,且可存储任意类型对象;无序,键唯一。
    字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
        d = {key1 : value1, key2 : value2 }
    键必须是唯一的,但值则不必。
    值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
    一个简单的字典实例:
        dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}


    #访问字典里的值
        #把相应的键放入到方括号中
        dic = {"name":"ccy","age":23,"address":"安徽"}
        print(dic["name"],dic["age"])#根据键取值


    #字典的修改
        #向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对
        dic["age"]=33#键存在,不改动,修改字典中相应的键对应的值
        print(dic)#此时对应的键值为33
        dic["sex"]="男"#键不存在,在字典中中增加新的键值对
        ret = dic.setdefault("age",33)#键存在,不改动,返回字典中相应的键对应的值
        print(ret)  #23
        ret1 = dic.setdefault("sex","男")#键不存在,在字典中中增加新的键值对,并返回相应的值
        print(dic)#{'name': 'ccy', 'age': 23, 'address': '安徽', 'sex': '男'}
        print(ret1) #男
        
        print(dic.keys())#返回字典中所有的键
        print(dic.values())#返回字典中所有的值
        print(dic.items())#返回字典中所有的键值对,以列表形式返回
        dic.update(dic1)#将两个字典拼接,如果键存在,则替换值,键不存在,则直接后面添加


    #字典的删除
        #能删单一的元素也能清空字典
        dic.clear() # 清空字典
        del dic['name'] #删除字典中指定键值对
        del dic #删除整个字典
        print(dic.pop("name"))#删除字典中指定键值对,并返回该键值对的值
        ret = dic.popitem()#删除最后一组键值对,并以元组方式返回值

    #字典的其他用法
        dict.fromkeys(seq[, value])#seq 中元素做字典的键,value 为字典所有键对应的初始值,如:
        dic=dict.fromkeys(['host1','host2','host3'],'test')
        print(dic)#打印结果为{'host3': 'test', 'host1': 'test', 'host2': 'test'}
        dic=dict.fromkeys(['host1','host2','host3'],['test1','tets2'])
        print(dic)#打印结果为{'host2': ['test1', 'tets2'], 'host3': ['test1', 'tets2'], 'host1': ['test1', 'tets2']}

        #in 的用法
        print(5 in dic)#判断参数5在不在字典dic里面,存在返回True,不在返回False
        

        #字典迭代,for用法
        for i in dic:
            print(i,dic[i])#键值一一对应,高效
        
        for i,v in dic.items():#键值一一对应,需要Items转换dict_items类型,较慢
            print(i,v)

        #dict.get()返回指定键的值,如果值不在字典中返回默认值 None。
        dict = {'Name': 'Runoob', 'Age': 27}
        print ("Age 值为 : %s" %  dict.get('Age'))
        print ("Sex 值为 : %s" %  dict.get('Sex', "NA"))

        #len(dict) 计算字典元素个数,即键的总数
        #str(dict) 输出字典,以可打印的字符串表示
        #type(dict) 返回输入的变量类型,如果变量是字典就返回字典类型。
        
        

#字符串(String)#
        字符串是 Python 中最常用的数据类型。我们可以使用引号( ' 或 " )来创建字符串。
        str = "this is bnanana"
        print(str*4)#字符串的乘运算
        print(str[4:])#字符串的切片,截取
        print(str[4::-1])#字符串的反向切片,截取
        print("123"+str)#字符串用“+”进行拼接
        #in 的用法\not in 则相反
        print("i" in str)#判断"i"是否在字符串str里,在的话返回true,否则返回false
        
        #原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
        print(R"456\n123")#原始字符串,相当于转义了\n
        print(r"456\n123")#原始字符串,相当于转义了\n

## python字符串格式化符号 ##
        符号        描述
        %c        格式化字符及其ASCII码
        %s        格式化字符串
        %d        格式化整数
        %u        格式化无符号整型
        %o        格式化无符号八进制数
        %x        格式化无符号十六进制数
        %X        格式化无符号十六进制数(大写)
        %f        格式化浮点数字,可指定小数点后的精度
        %e        用科学计数法格式化浮点数
        %E        作用同%e,用科学计数法格式化浮点数
        %g        %f和%e的简写
        %G        %f 和 %E 的简写
        %p        用十六进制数格式化变量的地址

## 格式化操作符辅助指令 ##
        符号          功能
        *          定义宽度或者小数点精度
        -          用做左对齐
        +          在正数前面显示加号( + )
        <sp>      在正数前面显示空格
        #在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
        0          显示的数字前面填充'0'而不是默认的空格
        %          '%%'输出一个单一的'%'
        (var)      映射变量(字典参数)
        m.n.      m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

## 字符串的内置方法 ##
        #join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串
        
        print(str.count("i"))#统计元素个数
        print(st.endswith('tty3')) #  判断是否以某个内容结尾
        print(st.startswith('he')) #  判断是否以某个内容开头
        print(str.center(50,'*'))#居中,指定50字符,不够用指定的数据代替
        print(str.find("i"))#查找字符串中第一个元素,并返回其索引值,未找到则返回-1
        print(str.rfind("i"))#从右边查找字符串中的第一个元素,并返回其索引值,未找到则返回-1
        print(str.index("i"))#跟find一样,找到返回一个索引值,找不到报错

        #格式化输出.format  / .format.map     
        #str1 = "my {name} is {who} and {age} 岁"
        print(str1.format(name="chen",who="ccy",age="12"))#格式化输出
        print(st.format_map({'name':'alex','age':22}))#格式化输出的,传入的是键值对
        print('My tLtle'.lower())#将字符串全部小写
        print('My tLtle'.upper())#将字符串全部大写
        print(str.islower())#判断字符串是否全小写
        print(str.isupper())#判断字符串是否全大写
        print('\tMy tLtle\n'.strip())#
        print('My title title'.replace('itle','lesson',1))#
        print('My title title'.split('i',1))#
        print(str.isalnum())#判断字符串是否是一个数字,是的话返回true,不是则返回一个false
        print(str.isnumeric())#如果字符串全是数字则返回True,否则返回false
        print(str.isspace())#如果字符串全为空格,则返回True,否则为false
        print('My title title'.title())#每个元素的首字母大写
        print(str.replace("i","d",1))#将指定的字符i替换成d,1表示替换的个数,默认全部

        #strip()方法用于移除字符串头尾指定的字符(默认为空格)或字符序列,注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符
        print(str.strip("*"))#删除字符串左右指定的字符
        print(str.lstrip("*"))#删除字符串左边指定的字符
        print(str.rstrip("*"))#删除字符串右边指定的字符
        print(str.split(" ",1))#split()通过指定分隔符对字符串进行切片,1表示只对一个分隔符切片

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!