zoukankan      html  css  js  c++  java
  • python D2

    python D2

    1. 列表、元组操作
    2. 字符串操作
    3. 字典操作
    4. 集合操作
    5. 文件操作
    6. 字符编码与转码 

    1 列表、元组操作

    定义列表,访问元素

    切片:获取多个元素

    追加

    修改

    删除

    In [1]: l = [1,3,5,6]
    
    In [2]: l[0]
    Out[2]: 1
    
    In [3]: l[1]
    Out[3]: 3
    
    In [4]: l[0:1]
    Out[4]: [1]
    
    In [5]: l[0:-1]
    Out[5]: [1, 3, 5]
    
    In [6]: l.extend([4,5,7])
    
    In [7]: l
    Out[7]: [1, 3, 5, 6, 4, 5, 7]
    
    In [8]: l[0] = 100
    
    In [9]: l[0]
    Out[9]: 100
    
    In [10]: del l[0]
    
    In [11]: del l
    
    In [12]: l
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-12-12f54a96f644> in <module>()
    ----> 1 l
    
    NameError: name 'l' is not defined
    

      

    扩展

    拷贝

    统计

    排序&翻转

    获取下标

    In [33]: names = ['Alex', 'Tenglan', 'Rain', 'Tom', 'Amy', 1, 2, 3]
    
    In [34]: names.sort()
    
    In [35]: names
    Out[35]: [1, 2, 3, 'Alex', 'Amy', 'Rain', 'Tenglan', 'Tom']
    
    In [36]: names.re
    names.remove   names.reverse  
    
    In [36]: names.reverse()
    
    In [37]: names
    Out[37]: ['Tom', 'Tenglan', 'Rain', 'Amy', 'Alex', 3, 2, 1]
    
    In [38]: names.count(1)
    Out[38]: 1
    
    In [40]: names.index(1)
    Out[40]: 7
    
    In [41]: names
    Out[41]: ['Tom', 'Tenglan', 'Rain', 'Amy', 'Alex', 3, 2, 1]
    

      

    元组

    元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

    它只有2个方法,一个是count,一个是index,完毕。

    In [1]: a = ('星期一' , '星期二')
    
    In [2]: a.index('星期一')
    Out[2]: 0
    
    In [3]: a.count('星期一')
    Out[3]: 1
    

      

    2、字符串操作

    特性:不可修改 

    name.capitalize()  首字母大写
    name.casefold()   大写全部变小写
    name.center(50,"-")  输出 '---------------------Alex Li----------------------'
    name.count('lex') 统计 lex出现次数
    name.encode()  将字符串编码成bytes格式
    name.endswith("Li")  判断字符串是否以 Li结尾
     "Alex	Li".expandtabs(10) 输出'Alex      Li', 将	转换成多长的空格 
     name.find('A')  查找A,找到返回其索引, 找不到返回-1 
    
    format :
        >>> msg = "my name is {}, and age is {}"
        >>> msg.format("alex",22)
        'my name is alex, and age is 22'
        >>> msg = "my name is {1}, and age is {0}"
        >>> msg.format("alex",22)
        'my name is 22, and age is alex'
        >>> msg = "my name is {name}, and age is {age}"
        >>> msg.format(age=22,name="ale")
        'my name is ale, and age is 22'
    format_map
        >>> msg.format_map({'name':'alex','age':22})
        'my name is alex, and age is 22'
    
    
    msg.index('a')  返回a所在字符串的索引
    '9aA'.isalnum()   True
    
    '9'.isdigit() 是否整数
    name.isnumeric  
    name.isprintable
    name.isspace
    name.istitle
    name.isupper
     "|".join(['alex','jack','rain'])
    'alex|jack|rain'
    
    
    maketrans
        >>> intab = "aeiou"  #This is the string having actual characters. 
        >>> outtab = "12345" #This is the string having corresponding mapping character
        >>> trantab = str.maketrans(intab, outtab)
        >>> 
        >>> str = "this is string example....wow!!!"
        >>> str.translate(trantab)
        'th3s 3s str3ng 2x1mpl2....w4w!!!'
    
     msg.partition('is')   输出 ('my name ', 'is', ' {name}, and age is {age}') 
    
     >>> "alex li, chinese name is lijie".replace("li","LI",1)
         'alex LI, chinese name is lijie'
    
     msg.swapcase 大小写互换
    
    
     >>> msg.zfill(40)
    '00000my name is {name}, and age is {age}'
    
    
    
    >>> n4.ljust(40,"-")
    'Hello 2orld-----------------------------'
    >>> n4.rjust(40,"-")
    '-----------------------------Hello 2orld'
    
    
    >>> b="ddefdsdff_哈哈" 
    >>> b.isidentifier() #检测一段字符串可否被当作标志符,即是否符合变量命名规则
    True
    

      

    3、字典操作

    字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

    字典的特性:

    • dict是无序的
    • key必须是唯一的,so 天生去重

    添加

    修改

    删除

    查找

    In [1]: d={"name":"a","age":12,}
    
    In [2]: d2 = dict(name="a" , age=12)
    
    In [3]: d3 = dict(zip(['name','age'],["a",12]))
    
    In [4]: d
    Out[4]: {'age': 12, 'name': 'a'}
    
    In [5]: d2
    Out[5]: {'age': 12, 'name': 'a'}
    
    In [6]: d3
    Out[6]: {'age': 12, 'name': 'a'}
    
    In [7]: d["sex"] = "男"
    
    In [8]: d
    Out[8]: {'age': 12, 'name': 'a', 'sex': 'xe7x94xb7'}
    
    In [9]: d["sex"] = "女"
    
    In [10]: del d["sex"]
    
    In [11]: d
    Out[11]: {'age': 12, 'name': 'a'}
    
    In [12]: del d
    
    In [13]: d
    ---------------------------------------------------------------------------
    NameError                                 Traceback (most recent call last)
    <ipython-input-13-e29311f6f1bf> in <module>()
    ----> 1 d
    
    NameError: name 'd' is not defined
    
    In [14]: "name" in d2
    Out[14]: True
    

      

    多级字典嵌套及操作

    循环dict

    In [16]: d2
    Out[16]: {'age': 12, 'name': 'a'}
    
    In [17]: for k , v in d2.items():
       ....:     print(k,v)
       ....:     
    ('age', 12)
    ('name', 'a')
    
    In [18]: 
    
    In [18]: d2.keys()
    Out[18]: ['age', 'name']
    
    In [19]: d2.values()
    Out[19]: [12, 'a']
    
    In [20]: type(d2.values())
    Out[20]: list

    4、集合操作

    集合是一个无序的,不重复的数据组合,它的主要作用如下:

    • 去重,把一个列表变成集合,就自动去重了
    • 关系测试,测试两组数据之前的交集、差集、并集等关系

    常用操作

    s = set([3,5,9,10])      #创建一个数值集合  
      
    t = set("Hello")         #创建一个唯一字符的集合  
    
    
    a = t | s          # t 和 s的并集  
      
    b = t & s          # t 和 s的交集  
      
    c = t – s          # 求差集(项在t中,但不在s中)  
      
    d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  
      
       
      
    基本操作:  
      
    t.add('x')            # 添加一项  
      
    s.update([10,37,42])  # 在s中添加多项  
      
       
      
    使用remove()可以删除一项:  
      
    t.remove('H')  
      
      
    len(s)  
    set 的长度  
      
    x in s  
    测试 x 是否是 s 的成员  
      
    x not in s  
    测试 x 是否不是 s 的成员  
      
    s.issubset(t)  
    s <= t  
    测试是否 s 中的每一个元素都在 t 中  
      
    s.issuperset(t)  
    s >= t  
    测试是否 t 中的每一个元素都在 s 中  
      
    s.union(t)  
    s | t  
    返回一个新的 set 包含 s 和 t 中的每一个元素  
      
    s.intersection(t)  
    s & t  
    返回一个新的 set 包含 s 和 t 中的公共元素  
      
    s.difference(t)  
    s - t  
    返回一个新的 set 包含 s 中有但是 t 中没有的元素  
      
    s.symmetric_difference(t)  
    s ^ t  
    返回一个新的 set 包含 s 和 t 中不重复的元素  
      
    s.copy()  
    返回 set “s”的一个浅复制
    

      

    5、文件操作

    对文件操作流程

    1. 打开文件,得到文件句柄并赋值给一个变量
    2. 通过句柄对文件进行操作
    3. 关闭文件 

    打开文件的模式有:

    • r,只读模式(默认)。
    • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
    • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

    "+" 表示可以同时读写某个文件

    • r+,可读写文件。【可读;可写;可追加】
    • w+,写读
    • a+,同a

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    • rU
    • r+U

    "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

    • rb
    • wb
    • ab

    with语句

    为了避免打开文件后忘记关闭,可以通过管理上下文,即:

    In [24]: with open('test.txt' , 'w+') as f:
                 f.write("aaa")
    
    In [28]: with open('test.txt' , 'r') as f:
                 print(f.read())
    

      

    6. 字符编码与转码

    详细文章:

    http://www.cnblogs.com/yuanchenqi/articles/5956943.html

    http://www.diveintopython3.net/strings.html


    1.在python2默认编码是ASCII, python3里默认是unicode

    2.unicode 分为 utf-32(占4个字节),utf-16(占两个字节),utf-8(占1-4个字节), so utf-16就是现在最常用的unicode版本, 不过在文件里存的还是utf-8,因为utf8省空间

    3.在py3中encode,在转码的同时还会把string 变成bytes类型,decode在解码的同时还会把bytes变回string

     

    >>> import sys
    >>> print(sys.getdefaultencoding())
    utf-8
    >>> a = "啦啦"
    >>> a
    '啦啦'
    >>> print(a.encode('gb2312'))
    b'xc0xb2xc0xb2'
    >>> print(a.encode('gb2312').decode('gb2312'))
    啦啦
    

      

  • 相关阅读:
    WampServer Mysql配置
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 陶陶摘苹果2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 质因数2
    Java实现 蓝桥杯VIP 算法提高 前10名
  • 原文地址:https://www.cnblogs.com/zsr0401/p/6544097.html
Copyright © 2011-2022 走看看