Python 学习手册——第七、八章 字符串、列表、字典
一、常见的字符串常量书写形式
- Python 中单双引号字符串表示完全一样,且可以互相嵌入
print('kkkk"s') #kkkk"s print("kkkk's") #kkkk's
- 转义序列代表特殊字符
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码中对应的是空字符
- raw 字符串抑制转义
myfile = r"c:\nthon\test" #抑制了 \n 的转义 print(myfile) #c:\nthon\test path = "c:\nython\test" print(path) ''' c: ython est '''
- 三重引号编写多行字符串
text = """Always look on th bright side of life""" print(text) """ Always look on th bright side of life """
二、字符串基本操作
- 简单合并、重复操作
print("yang" + "wang") # 合并字符串 print("yang " * 5) # 重复字符串 print('ng' in "yang") # in 函数
- 索引与切片
#偏移量从 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 倒序索引
- 字符串方法
-
print(str(42) + "1") #421 print(42 + int(1)) #43 # repr() 和 str() 方法打印出来只有形式不同 print(repr("ya"), str("ya")) #'ya' ya
- 字符串方法参考
-
三、字符串格式化
- 字符串格式化
#字符串格式化 % 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
- 实际上调用的是 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']
- 迭代解析与索引分片
#列表解析和迭代 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]]
- 基本操作
字典
与列表不同的是字典是无序对象的集合,字典当中的元素是通过键值对来存取的,而不是通过偏移存取。
字典也叫作关联数组或者是散列表,通过键将一系列值联系起来,通过使用键来从字典中取出一项。
与列表相似,字典支持原处修改(变长、缩短、嵌套(可以包含其它的字典或者列表))。
通过给索引赋值可以在原处修改字典。
- 代码实例
# 字典的操作 # 字典的构造 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]} '''
更多字典方法参考其它书籍或教程。