一.string(字符串)

       注:不可变数据类型

   1.创建:

       str1=‘’

       str2='abc'

       str3='汉字'

       str4='100'

        注:如果字符串中有想要输出的%时,写2个 。例------------->%%

   2.自然字符串

       str=r"Newlines are indicated by \n"

           指示某些不需要如转义符那样的特别处理的字符串,那么你需要指定一个自然字符串。自然字符串通过给字符串加上前缀r或R来指定

    3.字符串操作

     3.1

      str='abc'

      str.upper()   <------------将字母全部转为大写

      str.capitalize()   <---------将首字母转为大写


     str='abc efg hig'

     str.title()      <------------将每段字符的首字母变为大写


      str1='ABC'

      str1.lower()     <-----------将字母转为小写


      str1='abcABCkkkLLL'

      str.swapcase()    <--------将字符串中的字母大写变为小写,小写变为大写


    3.2

      str2=‘adebcde'

      str2.replace('de','aa',2)     <---------替换     

     注:replec()中 a 为被修改的目标元素, *为要改成此元素(可以为任意),2为要替换几个(如果不写默认为全部替换)


  3.3

   str3=‘     abc      ’

   str3.strip()    <------------去掉俩边的空格换行等

   str3.lstrip()   <------------去掉左边的空格换行等

   str3.rstrip()   <------------去掉右边的空格换行等


 3.4

   str4='abababababc'

   str4.split('b',2)   <----------通过元素‘b’分割为列表,2为分割到第几个,不加则默认全部转为列表

   str4.rsplit()       <----------与split分割的方向相反


 3.5

   str5='123'

   str5.isdecimal()    <----------判断是否为十进制的字符串,返回True或Flase

   str5.endswith('a')  <----------判断字符串是否为规定的元素结尾,返回True或Flase

   str5.isalnum()      <----------判断字符串是否为阿拉伯数字英文的组合或其中一种返回True或Flase

   str5.isalpha()      <----------判断字符串是否为纯英文返回True或Flase

   str5.isdigit()      <----------判断字符串是否为整数返回True或Flase

   str5.isidentifier() <----------判断字符串是否为合法标识符,返回True或Flase

   str5.islower()      <----------判断字符串是否为小写,返回True或Flase

   str5.isnumeric()    <----------判断字符串是否只是数字,返回True或Flase

   str5.isspace()      <----------判断字符串是否为空格,返回True或Flase

   str5.isupper()      <----------判断字符串是否是大写,返回True或Flase

   str5.startswith('a')<----------判断字符串是否以‘a’开头,返回True或Flase

   str5.istitle()      <----------判断每段字符串是否以大写开头,返回True或Flase


 3.6

   str6='abc'

   str6.index('a')     <----------返回查到第一个元素位置(通用方法

   str6.find('a')      <----------返回查到第一个元素所在的位置

   str6.rfind('a')     <----------返回查到对应元素最后所在的位置

   str6.count('a')     <----------统计元素数量(通用方法


 3.7

   切片(获取范围元素)-------------> str[:]或str[2:4]或str[2:10:2]

   print('+'.join(['1','2','3']))<----join()将序列中的元素以指定的字符连接生成一个新的字符串


 3.8

   str='abc'

   str.center(50,'+')<-------长度为50,并将其放在中间位置,不足用‘+’补全,不加‘+’或其他默认为空格

   str.ljust(50,'+')<--------长度为50,不足用‘+’在右边补全,默认为空格

   str.rjust(50,'+')<------长度为50,不足用‘+’在左边补全,默认为空格

   str.zfill(50)    <------长度为50,不足自动补全

   str='hellow!\t'

   str.expandtabs(tabsize=30)<--------将tab键转为多少个空格

   

 3.9

   str='abcd'

   str.encode('utf-8')<------将字符串转成二进制格式的  *转回utf-8----->后面加.decoding('utf-8')

    *pthon2中不输入编码格式默认为系统编码形式,在3中则默认utf-8



 3.10 format和format_map及maketrans

   str1='{name} and {name1}'

   str1.format(name='aaa',name1='bb')

   str1.format_map({'name':'a','name1':'b'}) 


   string=str.maketrans('abcd','1234')<-----前后对应,且长度相等---a=1

   print('adc'.translate(string))     <-----在字符串中查找对应字符 


二.int

 a=17

 a.bit_length()        <----------获取×××变量用二进制储存时需要的长度


三.list(列表)

 1.a=[] 或 a=['abc','123'] 或 a=['a',12] 

 2.a=[1,['111']]      <-----------嵌套,可以放任意的数据类型

 3.a=['aa']

   a.append('追加的元素')  <--------append()追加元素,追加的元素位置为末尾

 4.a=['a','b','c']

   a.insert('插入元素',1) <--------insert()插入元素,1为插入的位置

 5.元素修改

   a=['a','b','c']

   a[0]='123'            <--------将第一个元素修改

 6.删除

   a=['a','b','c','d']

   a.remove('a')        <---------删除指定元素

   del a[1]             <---------删除指定元素 

   a.pop()              <---------删除元素(不指定默认删除最后一项) 

   a.clear()            <---------清空元素

 7.查找

   a=['a','b','c','d']

   a.index('a')         <--------返回元素的下标

   a[1]                 <--------根据索引返回元素

 8.统计

   a=['a','b','c','d']

   a.count('a')

 9.输出方式

   a=['a','b','c','d']

   a.reverse()          <--------反方向输出列表内容

   a.sort()             <--------排序

 10.将列表合并

   a=['a','b','c','d']

   a1=[1,2]

   a.extend(a1)         <--------将列表合并

 11.复制

   a=['a','b','c','d',[1,2]]

   b=a.copy()           <--------浅复制(子列表的元素修改后,复制的子列表也会跟随改变

   深层复制需导入----->copy

   import copy

   a=['a','b','c','d',[1,2]]

   b=copy.deepcopy(a)   <--------复制后子列表不会跟随改变

 12.系统自动添加编号

   a=['a','b','c','d']

   for b in enumerate(a):<--------系统自动给每个元素添加编号

       print(b)


四.tuple(元组)

 1.元组为不可变类型,不能对其进行修改等操作

 2.a=('1','2','aa')

 3.a.index('1')         <---------获取元素的索引位置

 4.a.count('1')         <---------统计某元素的个数


五.bool(布尔)

 返回True或Flase


六.dict(字典)----->>无序

 1.a={'age':18,'age2':19,'name':'jonne'}   <-----声明

 2.a.get('age')     <---------通过key获取value,如果key不存在返回None

   a['age']         <---------通过key获取value,如果key不存在则报错

   a.get('n','2')   <---------key='n'不存在,返回‘2’

   a['name2']='jiex'<---------dict中不存在则添加

   a.setdefault('n','123') <-------如果存在返回,不存在则创建

   

 3.a.keys()         <---------获取到dict中所有的key

   a.values()       <---------获取到dict中所有的value

   a.itmes()        <---------获取到dict中所有的元素,并转成list输出


 4.删除

   a={'age':18,'age2':19,'name':'jonne'}

   del a['age]

   a.pop('age')

   a.popitme()      <---------随意删除一对元素

 5.判断是否存在

   a={'age':18,'age2':19,'name':'jonne'}

   ‘age’ in a       <---------判断key是否存在,返回False或True,在py2中a.has_key

 

 6.合并字典且key相等,valuse不同则将其覆盖

   a={'a':'1','b':'2'}

   b={'c':'3','b':'100'}

   a.update(b) 

 

 7.初始化一个新字典相当于list的浅拷贝

  a={'a':'1','b':'2'}

  a.formkeys([1,2],'kkk')


七.集合

集合无序
list_1=[1,4,5,78,9,8]
list_1=set(list_1)#转为集合
print(list_1)
list_2=set([2,3,4,5,6,7,8,78])
print(list_1,list_2)
print(list_1.intersection(list_2))#找出交集
print(list_1.union(list_2))#并集
print(list_1.difference(list_2))#差集
print(list_1.issubset(list_2))#判断list_1是子集吗
print(list_1.issuperset(list_2))#list_1是父集吗
print(list_1.symmetric_difference(list_2))#对称差集
print(list_2.isdisjoint(list_1))#判断是否存在交集

--------运算符关系测试---------
print(list_1 & list_2)#交集
print(list_1 | list_2)#并集
print(list_1 - list_2)#list_1中list_2没有的
print(list_1 ^ list_2)#对称差集


--------集合操作方法------------
list_3=set([1,2])
list_3.add(900)#添加
print(list_3)
list_3.update([9,8,7])#添加多项
print(list_3)
list_3.remove(9)#删除
print(list_3)
print(8 in list_3)#判断是否是其成员
print(list_3.pop())#随机删除其中一个成员
list_3.discard(8)#删除,如果不指定元素报错,
print(list_3)