zoukankan      html  css  js  c++  java
  • python的数据类型及操作

        简述python的几种简单的数据类型及使用方式

      引入内存空间得概念,开辟一个数字类型占32位(32位机器),一个字符占8位bit。

      当图中每个bytes都是char类型得时候,那么从内存取出来就是转换成字符(按编码表转换)。

    字符串

        字符串是不可变数据类型,拥有多种内置方法可以操作。

        创建字符串就是给变量分配一个字符串的值即可。通常用引号创建字符串。

    tell = 'my name is Jeff'
    tell1 = "my name is Jeff"
    tell2 = '''my name is Jeff,
    I'm oldboy .'''

        字符串切片

    tell = 'my name is Jeff'
    print(tell[0])
    print(tell[:7])
    print(tell[:7]+'	frank')
    运行结果
    m
    my name
    my name    frank

       使用split方法

    tell = "my name is jeff "
    print(tell.split('a'))
    运行结果
    ['my n', 'me is jeff ']

        字符串格式化输出

    print('my name is %s'%('jeff'))
    运行结果
    my name is jeff
    print('my name is {name}'.format(name='jeff'))
    运行结果
    my name is jeff

        字符串的内置方法

        1.capitalize(整个字符串首字母大写,其他全部改为小写)

        2.upper(整个字符串全部大写)lower(全部小写)

        3.center(指定宽度和填充字符)

    tell = "my name Is jeff "
    print(tell.center(50,'*'))
    运行结果
    *****************my name Is jeff *****************

        4.count(区间内某个字符的个数)

    tell = "my name Is jeff "
    print(tell.count('m',0,5))
    运行结果
    1

        5.encode(编码方式)

        6.endswith(以某字符,字符串结尾)

    tell = "my name Is jeff"
    print(tell.endswith("ff"))
    运行结果
    Ture

        7.expandtabs(选择制表符的宽度)

        8.find(索引字符的位置,没有返回值为-1)index(同find,但是他查不到会报错)rfind(从右向左查同find)rindex(从右向左返回索引值同index)

        9.format(格式化输出)format_map(格式化输出,以字典形式存储kv数据)

    people={
        'name':['Frank','Caroline','jeff'],
        'age':['23','22'],
    }
    print("My name is {name[2]},i am {age[0]} years old !".format_map(people))
    运行结果
    My name is jeff,i am 23 years old !

        10.isalnum(是否是数字与字母的组合)isalpha(是否是字母组合)isdecimal(是否是十进制正整数)isdigit(是否是真整数)isdentifier(是否是python中的标识符)islower(判断字符串字母是不是都是小写)isnumeric(是不是数字,无论中文还是其他只要是数字就能判断)isprintable(是否可打印)isspace(是否都是空格,tab/r等)istitle(是否所有字符首字母大写)返回值都是bool值

        11.join(以指定字符连接生成新的字符串)

    tell = "my name Is jeff"
    print('='.join(tell))
    运行结果
    m=y= =n=a=m=e= =I=s= =j=e=f=f

        12.ljust与rjust指定字符宽度填充,与center类似

        

    tell = "my name Is jeff"
    print(tell.ljust(20,'='))
    print(tell.rjust(20,'='))
    运行结果
    my name Is jeff=====
    =====my name Is jeff

        13.lstrip,rstrip,strip去前后空白 等

        14.maketrans,translate

    intab = "abcde"
    outtab = "12345"
    tell = "my name Is jeff"
    trantab = tell .maketrans(intab, outtab)
    print (tell.translate(trantab))
    运行结果
    my n1m5 Is j5ff

        15.partition(指定分隔字符,返回一个元组里)rpartition(从右向左分割,只分割一次,若没有指定字符返回元祖前面加两个空字符串)split(指定字符分割,可指定分割次数分割后删除指定的字符默认空格分割)rsplit(同split只是从右向左)

        16.replace(指定字符替换为新的字符,可指定个数)

        17.splitlines(将字符串转换为列表)

        18.startswith(是否是字符串或字符开头)

        19.swapcase(大小写互换)

        20.zfill(与center类似,显示在右边不足宽度补零)

    整型与长整型

        整型是不包含小数部分的数值,格式是“int”。长整型(无穷精度)与整型(32位)类似只是数字比较大,格式是“type”。且长整型只存在于python2中,32位机器上取值范围是-2**31~2**31-1,在64位机器上取值为-2**63~2**63-1。在python3中没有整型与长整型的区分,只有整型。

      

    浮点型

        我们可以简单的把浮点型看做是小数。格式类型是“float”。浮点型除了作为小数输出还常用于科学计数法中。

    a=1.23e10
    b=1.23E10
    print(a)
    print(b)
    print(type(a))
    print(type(b))
    输出结果
    12300000000.0
    12300000000.0
    <class 'float'>
    <class 'float'>

    bool型

        bool类型的返回值只有两种:True和False。

        逻辑运算:

        1.与运算:and(两个都为True,结果才为True)

        2.或:or(只要一个为True,则为True)

        3.非:not(把True变为False,把False变为True)

        短路运算:

        布尔类型还可以与其他数据类型进行逻辑运算,python中0、空字符串、None、空列表、空字典等为False,其他数值和非空字符串为True。

        1.在计算a and b时,如果a是True,则计算结果取决于b,则返回b;如果a是False,则直接返回a。

        2.在计算a or b时,如果a是True,则直接返回a;否则返回b。

        bool类型还可以当做整型的0和1使用。

    print(True+13)    #True为1
    print(False+13)   #False为0
    输出结果
    14
    13

    列表

        列表是由一系列按特定顺序排列的元素组成。在python中,用方括号表示列表,并用逗号来分割其中的元素,格式类型为“list”。

        列表的内置方法有:

        1.append(在列表的最后添加某个元素)insert(也是添加元素,但是可以通国索引指定插入具体位置)

        2.count(某个元素的个数)

        3.clear(清空列表)

        4.copy(复制列表)

    name = ['jeff','Frank',1,{'xixi':'sabi'},[3,4]]
    name_cp = name.copy()
    print(name_cp)
    name[0]='Tom'
    name[2]= 7
    print(name)
    print(name_cp)
    运行结果
    ['jeff', 'Frank', 1, {'xixi': 'sabi'}, [3, 4]]
    ['Tom', 'Frank', 7, {'xixi': 'sabi'}, [3, 4]]
    ['jeff', 'Frank', 1, {'xixi': 'sabi'}, [3, 4]]

        注:改变列表name中的元素name.copy中的值也随着变化。但是改变列表name中的列表值,name.copy的列表值是不会变得。由于列表中的列表开辟的空间是不变的(列表本身是可变数据类型)name与name.copy指向的是同一个地址,里面存储的值会一起改变。

        5.deepcopy与copy类似,但是无论copy原列表如何变化,deepcopy的列表都会与列表一起变化,即两者指向统一的数据空间。

        6.extend(函数用于在列表末尾一次性追加另一个序列中的多个值,用新列表扩展原来的列表。)

    name = ['Saber','Frank']
    nameto = ['Mei','Jack']
    name.extend(nameto)
    print(name)
    运行结果
    ['Saber', 'Frank', 'Mei', 'Jack']

        7.index(查找相应元素的索引值,可指定索引范围并且查不到也不会报错)

        8.pop(弹出元素,不指定默认弹出最后一个值,索引失败会报错,弹出的值可以存储到其他列表或变量里。)remove(也是移除,可指定移除的具体元素)del(无敌的移除手段)

        9.reverse(将列表中元素反转过来)

        10.sort(将列表排序,永久修改可通过reverse=True传递倒着排序)sorted(与sort类似但是不改变原列表的元素)

        11.len(查看列表的长度)

    元组

        与列表很相似,只是不可以进行修改。若是要改变元组中的值只能够改掉整个元组咯。

    集合

        集合是无需元素组成,打印时顺序也是无序的,但是集合中没有重复的元素,所以我们常使用集合去重。

        我们有两个集合a与b:

        a与b的交集为a.intersection(b)或者a & b。

        a与b的差集为a.difference(b)或者a-b。

        a与b的并集为a.union(b)或者a|b。

        反向差集与对称差集(并集减去交集)为a.symmetric_difference(b)或者a^b。

        合并为a.update(b),a.difference_update(b)求差集并赋值给a集合

        删除元素可用discard(元素)或者remove(元素),pop()是随机删除一个元素。

        注:set是可变数据类型,但是set里面的元素一定是不可变数据类型。

    字典

        在python里面,字典就是一系列的键-值对,每个键都与一个值是对应的,键可以是数字、字符串、列表和字典。任何python对象都可用作字典的值。

        字典中常用的内置方法有:

        keys(取出字典中的key)

        values(取出字典中的value)

        clear(清空所有键值对)

        copy(与列表一致)

        fromkeys(创建新的列表所有的值都是同一个value)

    key = (1,2,3,4,5)
    value = ('a','b','c','d','e')
    print(dict.fromkeys(key,value))
    运行结果
    {1: ('a', 'b', 'c', 'd', 'e'), 2: ('a', 'b', 'c', 'd', 'e'), 3: ('a', 'b', 'c', 'd', 'e'), 4: ('a', 'b', 'c', 'd', 'e'), 5: ('a', 'b', 'c', 'd', 'e')}
    a = {"k1":123, "k2":456, "k3":789}
    b = a.fromkeys(["k1", "k2", "k3"], "876")
    print(b)
    #输出 {'k2': '876', 'k3': '876', 'k1': '876'}

      get(查找的一种方式,找不到对象返回None)

        item(返回键值对)

        pop(指定key,弹出此键值对)

        popitem(弹出最后一个键值对返回到元组中,没有会报错)

        update(将新的字典添加到原来的字典,若原来的字典包含了这个键则覆盖原来的值)

        setdefault(k,v)如果键在字典中,则返回这个键的值,如果不在字典中,则向字典中插入这个键,并返回value,默认value位None。

    bytes

        所有的字符存到存储单元里都是bytes类型。

    这里简述了集中python中常用数据类型以及内置的一些使用方法,方便以后对python的学习在此总结一下。

  • 相关阅读:
    NeiHappy我相信做技术也能身体好
    陈皓程序员技术练级攻略
    张子阳对人生的一点看法
    HaoyuTan程序员之路──C语言
    三种冒泡排序的实现与时间快慢的比较
    R语言——中文分词包jiebaR
    任务计划程序执行bat失败
    R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解)
    R+NLP︱text2vec包——四类文本挖掘相似性指标 RWMD、cosine、Jaccard 、Euclidean
    R语言做文本挖掘 Part5情感分析
  • 原文地址:https://www.cnblogs.com/Jeffding/p/7103463.html
Copyright © 2011-2022 走看看