Python 学习手册——第七、八章 字符串、列表、字典

 

一、常见的字符串常量书写形式

  • Python 中单双引号字符串表示完全一样,且可以互相嵌入
    print('kkkk"s') #kkkk"s
    print("kkkk's") #kkkk's
    View Code

     

  • 转义序列代表特殊字符
    print("What a beautiful day! What a beautiful day!"\
    "We can go out for a travel. We can go out for a travel.")  #续行符
    print("\\")                                                 #反斜杠
    print("\'")                                                 #打印单引号
    print("******"+"\b" * 5 + "+" * 4)                          #回退符
    print("\n")
    print("学号\t姓名\t语文\t数学\t英语")
    print("2019001\tyang\t99\t88\t99")
    print("2019002\twang\t92\t45\t93")                          #制表符
    
    print("\x25")                                               # \x25表示十六进制的25对应的 ASCII码字符 %
    print("a\0b\0c")                                            #\0在ASCII码中对应的是空字符
    View Code

     

  • raw  字符串抑制转义
    myfile = r"c:\nthon\test" #抑制了 \n 的转义 
    print(myfile)             #c:\nthon\test
    path = "c:\nython\test"
    print(path)
    '''
    c:
    ython   est
    '''
    View Code

     

  • 三重引号编写多行字符串
    text = """Always look
    on th bright
    side of life"""
    print(text)
    """
    Always look
    on th bright
    side of life
    """
    View Code

     

 二、字符串基本操作

  • 简单合并、重复操作
    print("yang" + "wang")  # 合并字符串
    print("yang " * 5)       # 重复字符串
    
    print('ng' in "yang")    # in 函数
    View Code

     

  • 索引与切片
    #偏移量从 0 开始
    name = "yang123"
    print(name[0], name[2], name[-2])   # y n 2
    print(name[1:2], name[:])           # a yang123 g
    
    #带步长的切片
    print(name[1:5:2])  # 步长为2
    print(name[1:5:-2]) # 步长为-2 没有可索引元素
    print(name[5:1:-2]) # 步长为-2  倒序索引
    View Code

     

  • 字符串方法
    •   
      print(str(42) + "1")
      #421
      print(42 + int(1))
      #43
      # repr() 和 str() 方法打印出来只有形式不同
      print(repr("ya"), str("ya")) #'ya' ya
      View Code

       

    • 字符串方法参考

三、字符串格式化

  • 字符串格式化
    #字符串格式化 %
    print("That is %.2f %s bird!" %(1, 'dead')) # That is 1 dead bird!
    print("%d %d %s" %(1, 2, 'go'))           # 1 2 go
    
    #字符串格式化 format
    print("{0} {0}".format("hello", "world")) # hello hello
    print("{0} {1} {0}".format("hello", "world")) # hello world hello
    
    print("data : {year} {month} {day} {time} {price:.2f}".\
        format(year = 2019, month = 10, day = 31, time = "21:07", price = 21.0092))
    # data : 2019 10 31 21:07 21.01
    View Code

     

  • 实际上调用的是  str.format() 方法,更复杂的表达方式请查阅手册。

  

四、列表与字典

   列表

   列表是 python 中灵活性很强的有序集合类型。与前面的字符串不同的是:列表可以包含任何种类的对象(数字,字符串甚至其他列表);同时它不像字符串,列表是可变对象,支持在原处修改,即可以通过分片列表方法调用等来实现。

  • 常用的列表常量和操作:

          

                  

操作 解释
L = [] 一个空列表
L = [0, 1, 2] 索引为0,1,2的列表
L = ['abc', 123, [1, 2]] 嵌套子列表
L = list('span') 可迭代项目的列表
L = list(range(-3, 3)) 连续整数的列表
L[i] 索引
L[i:j] 分片
len(L) 求长度
L *3 重复

 

  • 代码实例
    • 基本操作
      #列表简单操作
      L1 = [1, 2, 3, ["yang", 12.5]]
      L2 = ["abc", "yyy"]
      L3 = [["yang", 12.5]]
      print(len(L1))
      print( L1 + L2)
      print(L1 + L3)
      print(L1 * 4)
      '''
      4
      [1, 2, 3, ['yang', 12.5], 'abc', 'yyy']
      [1, 2, 3, ['yang', 12.5], ['yang', 12.5]]
      [1, 2, 3, ['yang', 12.5], 1, 2, 3, ['yang', 12.5], 1, 2, 3, ['yang', 12.5], 1, 2, 3, ['yang', 12.5]]
      '''
      
      L4 = list("zzz")
      print(L2 + L4) # ['abc', 'yyy', 'z', 'z', 'z']
      View Code

       

    • 迭代解析与索引分片
      #列表解析和迭代
      l1 = [1, 2, ["yang"]]
      l2 = list("yang")
      print(3 in l1)
      
      for x in l1:
          print(x, end = " ")
      l1.append("yang") # 只能附加一个元素项
      print("\n")
      print(l1)
      print(l1.append([1, 4, 5])) # 不支持附加多个元素项
      
      # 索引分片和矩阵
      l1 = ["123", "456", "789", "#*+"]
      print(l1[1])
      print(l1[-1])
      print(l1[:2])
      print(l1[-1:1])     # []
      
      print(l1[0][1])     # 2
      print(l1[:][1:2])   #['456']
      print(l1[1:2][:])   #['456']
      
      matrix = [[1, 2, 3],\
              [4, 5, 6],\
              [7,8,9]]
      print(matrix[:][:])  #[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
      
      #原处修改
      matrix_1 = matrix
      matrix[1][1] = 100
      print(matrix) #[[1, 2, 3], [4, 100, 6], [7, 8, 9]]
      print(matrix_1) # [[1, 2, 3], [4, 100, 6], [7, 8, 9]]
      View Code

 

  字典

  与列表不同的是字典是无序对象的集合,字典当中的元素是通过键值对来存取的,而不是通过偏移存取。

  字典也叫作关联数组或者是散列表,通过键将一系列值联系起来,通过使用键来从字典中取出一项。

  与列表相似,字典支持原处修改(变长、缩短、嵌套(可以包含其它的字典或者列表))。

  通过给索引赋值可以在原处修改字典。

  • 代码实例
    # 字典的操作
    
    # 字典的构造
    d_1 = {"yang" : 1, "zhang" : "zh", "wang":[1, 2, 3]}
    d_2 = dict(name = "Bob", age = 41)
    d_3 = dict.fromkeys(["y", "z", "w"])
    keyslist = ["1", "2", "3"]
    valslist = ["x", "y", "z"]
    d_4 = dict(zip(keyslist, valslist))
    
    print(d_1)
    print(d_2)
    print(d_3)
    print(d_4)
    '''
    {'yang': 1, 'zhang': 'zh', 'wang': [1, 2, 3]}
    {'name': 'Bob', 'age': 41}
    {'y': None, 'z': None, 'w': None}
    {'1': 'x', '2': 'y', '3': 'z'}
    '''
    print(d_1["wang"], "\n", d_1["yang"])
    print("yang" in d_1)
    '''
    [1, 2, 3]
     1
    True
    '''
    # 原处修改字典
    
    d_1["zhang"] = ["123", "456"]
    print(d_1)
    '''
    {'yang': 1, 'zhang': ['123', '456'], 'wang': [1, 2, 3]}
    '''
    View Code

    更多字典方法参考其它书籍或教程。

 

posted on 2019-10-29 11:32  承钺  阅读(116)  评论(0编辑  收藏  举报