zoukankan      html  css  js  c++  java
  • Python 标准数据类型

    标准数据类型:

    Number(数字)----int  float  bool  complex(复数)

    String(字符串)

    List(列表)

    Tuple(元组)

    Dictionary(字典)

    Set(集合)

    数字

    1.复数

    num.real 实部  num.imag 虚部  num.conjugate()共轭复数(实部相同,虚部相反)

    2.操作符

    类型转换原则:整转浮,非复转复

    3.算术操作符

    expr1**expr2  乘方   expr1/ expr2 传统除(或真正除)   expr1//expr2 地板除

    4.位操作符(只适用于整型)

    ~num 按位取反,0变1,1变0  num1<<num2 num1的二进制位左移num2位,右移>>则相反  

    num1&num2 与,两个1为1,否则为0  num1^num2 异或,相异为1  num1|num2 或,有一个1则为1

    5.内建函数和工厂函数

    转换工厂函数:int()  float()  complex()  hex()十六进制  oct()八进制

    功能函数:abs()  divmod(a,b)把除数和余数运算结果结合起来,返回一个包含商和余数的元组(a // b, a % b)  

         pow(a,b)a的b次方   round(a,b)对浮点型进行四舍五入运算,第二参数为精确位数 

    关于int():如果是字符串转数字,则字符串必须是数字,不能有小数点。9_6被当作96,但不能以下划线开头

    序列:字符串、列表、元组

    1.序列类型操作符

    seq[ind]  获得下标为ind的元素,下标从0开始

    seq[ind1:ind2]  获得下标从ind1到ind2的元素集合,含头不含尾

    seq*expr  序列重复expr次

    seq1+seq2  连接序列seq1和seq2

    obj in seq  判断obj元素是否包含在seq中

    obj not in seq  判断obj元素是否不包含在seq中

    2.序列类型转换函数

    list(iter)  把可迭代对象转换成列表

    str(obj)  把对象转换成字符串

    tuple(iter)  把可迭代对象转换成元组

    3.序列类型内建函数

    len(seq)  reversed(seq)seq -- 要转换的序列,可以是 tuple, string, list 或 range,返回一个反转的迭代器  sum(seq)

    上面三个函数只能接受可迭代对象作为参数,接下来的还可接受可迭代对象作为参数

    max()和min()  sorted(iterable, key=None, reverse=False)对所有可迭代的对象进行排序操作,key=str.lower忽略大小写排序,默认升序,reverse=True降序

    sorted()与sort()的区别:sort应用在list,sorted可以对所有可迭代的对象进行排序操作;sort()是对已经存在的列表进行操作,sorted()返回的是一个新的list

    4.字符串

    (1)Python里面单引号和双引号的作用是相同的,因字符串不可变,不能仅仅删除一个字符串里的某个字符

    1 a = 'Hello World!'  #去除l
    2 a = a[:3]+a[4:] #这是一个新串

    字符串做比较操作,按ASCII值,a:97  A:65  a-A=32

    1 a = 'Qwer'
    2 a.upper()    #小写变大写 QWER
    3 a[:2].upper()    #可配合切片用 QW
    4 a.lower()    #大写变小写 qwer  这种操作并不会改变原来a的值

    (2)Python必须为每一个参加连接操作的字符串分配新的内存,包括新的字符串,所以出于性能考虑,用%或join()连接字符串

     '%s %s' % ('Chen','hongbing')  #'Chen hongbing'
    s = '-'.join(('C','H','B'))  #'C-H-B'

    (3)格式化字符    转换方式

      %c       转换成字符(ASCII值)

      %s       优先用str()函数进行字符串转换

      %r       优先用repr()函数进行字符串转换

      r' '       关闭转义,如print(r' %%')输出 %%

    (4)内建函数

     1 len(str)    #返回字符数
     2 max(str)和min(str)    #返字符串中ASCII值最大或最小的字符
     3 chr(65)--->'A'    #参数范围在range(256)返对应字符
     4 ord('a')--->97    #与chr()对应
     5 
     6 string.find(str,start,end)    #如在返索引值,否则返-1
     7 string.strip([chars])        #删除字符串开尾指定的字符,默认空格
     8 string.split(str,num)    #以str为分隔符切片string,分隔num个字符串
     9 string.splitlines()        #按照行分隔,返列表
    10 string.replace(str1,str2,num)    #把str1换成str2,不超过num次
    11 string.count(sub,start,end)    #统计sub从下标start到end之间出现的次数
    12 string.encode(encoding='utf-8',errors='strict')    #对字符串进行编码,strict严格编码,errors可指定ignore无视
    13 string.decode(encoding='utf-8',errors='ignore')    #对字符串进行解码
    14 string.center(width)    #返回一个原字符串居中。并使用空格填充width个
    15 string.capitalize()    #把字符串第一个字符大写
    16 string.swapcase()    #翻转string中的大小写
    View Code

    5.列表

    (1)删除列表中的元素或者列表(本身)

    del a[index]  a.remove(元素)  pop(元素)返删除的元素

    列表类型的连接操作只能在同类型之间进行,即便他们都是序列类型也不行

    (2)内建函数

    1 list.extend(L)    #将列表L连接到list的末尾
    2 list.count(x)    #返元素x出现次数
    3 list.insert(i,x)    #把x插入到下标为i的位置
    4 list.index(x)    #返回第一次出现x的下标
    5 list.copy()    #返回一个复制列表
    View Code

    (3)将一个列表倒序的几种方法

    1 s = [2,4,6,8]
    2 list1 = [i for i in reversed(s)]
    3 list2 = sorted(s,reverse=True)
    4 list3 = s[::-1]
    5 s.reverse()

     6.元组

    与list类似,有append()、insert()等方法,但是一旦初始化就不能再修改,更安全,元组用 ( ) 标识。

     1 tuple1 = (1,)        #只有一个元素时也要用逗号隔开
     2 tuple2 = ('a',2,['A','B'])     #"可变"tuple,可变是元素中的list中的元素可变,tuple本身是不可变的
     3 
     4 for i in tuple2[:]:
     5     print(i)
     6 print('---------------------------')
     7 
     8 tuple2[2][0] = 'X'       #改变的是tuple2元素中的list中的元素
     9 for i in tuple2[:]:
    10     print(i)
    11 print('---------------------------')
    12 
    13 print(tuple2*2)     #输出元组两次
    14 print('---------------------------')
    15 
    16 print(tuple1+tuple2)    #打印组合的元组
    17 print('---------------------------')

    映像和集合类型

    1.字典

    字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。能存储任意个数的Python对象(包括其他容器类型),无序,键唯一

    dict.keys()键的集合  dict.values()值的集合  以列表的形式返回

    dict.items()得到包含键值对的元组的列表 [(key1,value1),(...)]

    检查一个字典中是否有某个键  in  not in  如‘abc’ in dict

    用del 删除字典中的某个键或是清除整个字典

    字典不支持拼接和重复操作

    字典比较:首先是字典大小(长度)、让后是键,最后是值

    内建函数:

    1 dict2 = dict1.copy()  #浅复制
    2 len(dict)  #返回键值对的数目
    3 hash(obj)    #判断某个对象是否可做字典的键,返这个对象的哈希值
    4 dict.clear()    #删除字典中所有元素
    5 dict.fromkeys(seq,val)    #创并返新字典,seq中的元素为键,val为值,所有seq键的值都为val,不修改原来dict字典
    6 dict.get(key,default)    #返key键对应值,如不在,返default值(可缺省)
    7 dict.pop(key,default)    #删除并返dict[key]对应的值,如不在,返default值(可缺省)
    8 dict.update(dict2)    #将字典dict2的键值对添加到字典
    View Code

    字典中的值没有任何限制,可以是任意对象,标准对象和自定义对象皆可

    字典中的键有类型限制,每个键只能对应一项,不允许一键对应多个值(像列表,元组和其他字典对象则可以)

    当有键发生冲突,取最后(最近)的赋值

    大多数Python对象可以作为键,但他们必须是可哈希的对象,像列表和字典这样的可变类型不能作为键(但可做值),所有不可变类型都是可哈希的

    除了用{ }直接创建字典外,还可用字典推导来构建新的dict。字典推导可以从任何以键值对作为元素的可迭代对象中构建出字典

    2.集合

    集合的本质是许多唯一对象的聚集。因此,集合可以用于去重

    两种类型:可变集合(set)和不可变集合(frozenset)

    可变类型:可添加和删除元素

    操作符:in  not in  ==  !=  < <= > >=  &(交集)  |(合集)  -(差补 s-t只属于s而不属于t)  ^(异或 s^t属于s或t,不能同时属于两个集合)

    s.add(元素)  s.update(元素)  s.remove(元素)  s.pop()  s.clear()删除集合中所有元素  len(set)  s.copy()返新集合,浅复制  

    3.dict和set

    字典和集合的速度是非常快的,如果在你的程序里有任何的磁盘输入/输出,那么不管查询有多少个元素的字典或集合,所耗费的时间都能忽略不计

  • 相关阅读:
    C# 普印力RFID打印机模板打印
    C# IP地址段端口扫描器封装调用
    W3100SMS 短信猫代码发送 下
    C#动态创建Access数据库,创建加密码Access数据库,更改Access密码
    C# 区分键盘和红外线扫描枪输入 模拟扫描枪
    文件格式大全
    winform获取当前Url地址
    [WPF]使用C#代码实现DataTemplate
    钩子类型
    WM_*
  • 原文地址:https://www.cnblogs.com/bfcs/p/11103241.html
Copyright © 2011-2022 走看看