数据类型 字符串 列表 元组 字典
数据类型 (共 7 种)
1.str 字符串类型(用法多)
2.int 数字类型
3.bool bool类型 (True 和 False)
4.list 列表(增删改查)
5.tuple 元组(增删改查)
6.dict 字典(增删改查)
7.set (集合)
1.str (字符串类型) :
1.1 介绍
在单引号、双引号、三引号内,由一串字符组成的叫字符串
1.2 字符串的索引与切片
字符串索引
1 s = 'ABCDEFGHIJK' 2 print(s[0]) #取第一位 3 >>> 'A' 4 5 print(s[2]) #取第三位 6 >>> 'C' 7 8 print(s[-1]) #取倒数第一位 9 >>>'K' 10 11 print(s[-2]) #取倒数第二位 12 >>> 'J'
字符串切片:顾头不顾尾
1 s = 'ABCDEFGHIJK' #切片打印 第一位 到 第四位 2 print(s[0:4]) 3 >>>'ABCD' 4 5 print(s[0:-1]) #切片打印 第一位 到 倒数第二位 6 >>>'ABCDEFGHIJ' 7 8 print(s[:]) #切片打印 所有 9 >>>'ABCDEFGHIJK' 10 11 print(s[0:]) #切片打印 所有 12 >>>'ABCDEFGHIJK' 13 14 print(s[0:0]) #因为0:0 都是A 顾头不顾尾原则 所以不打印 15 >>> 16 17 s = 'ABCDEFGHIJK' # s[首:尾:步长] 18 print(s[0:5:2]) #切片 跳着 打印 第一位 到 第四位 19 >>>'ACE' 20 21 print(s[4:0:-1]) #倒着打印时 步长必须加上-1 22 >>>'EDCB' 23 24 print(s[3::-1]) #倒着打印 第四位 到 A 所有字符串 25 >>>'DCBA' 26 27 print(s[3::-2]) #倒着 跳着打印 28 >>>'DB' 29 30 print(s[-1::-1]) #倒着 打印 所有 31 >>>'KJIHGFEDCBA' 32 33 print(s[::-1]) #简写 倒着打印 所有 34 >>>'KJIHGFEDCBA'
1 s = 'ABCDEFGHIJK' #切片打印 第一位 到 第三位 2 print(s[0:4]) 3 >>>'ABCD' 4 5 print(s[0:-1]) #切片打印 第一位 到 倒数第二位 6 >>>'ABCDEFGHIJ' 7 8 print(s[:]) #切片打印 所有 9 >>>'ABCDEFGHIJK' 10 11 print(s[0:]) #切片打印 所有 12 >>>'ABCDEFGHIJK' 13 14 print(s[0:0]) #因为0:0 都是A 顾头不顾尾原则 所以不打印 15 >>> 16 17 s = 'ABCDEFGHIJK' # s[首:尾:步长] 18 print(s[0:5:2]) #切片 跳着 打印 第一位 到 第四位 19 >>>'ACE' 20 21 print(s[4:0:-1]) #倒着打印时 步长必须加上-1 22 >>>'EDCB' 23 24 print(s[3::-1]) #倒着打印 第三位 到 A 所有字符串 25 >>>'DCBA' 26 27 print(s[3::-2]) #倒着 跳着打印 28 >>>'DB' 29 30 print(s[-1::-1]) #倒着 打印 所有 31 >>>'KJIHGFEDCBA' 32 33 print(s[::-1]) #简写 倒着打印 所有 34 >>>'KJIHGFEDCBA'
1 s = 'pyTHon' 2 # captalize,swapcase,title 3 print(s.capitalize()) #将首字母变大写,后面字母变小写 4 >>>'Python' 5 6 print(s.swapcase()) #反转,大小写互换 7 >>>'PYthON' 8 9 s1 = '-python fullstack@s9' #每个单词首字母大写,由数字,空格等特殊字符隔开 10 print(s1.title()) 11 >>>'-Python*Fullstack@S9' 12 13 14 # upper、lower 15 print(s.upper()) 16 >>>'PYTHON' 17 18 print(s.lower()) 19 >>>'python' 20 21 # center、expandtabs 22 print(s.center(20, '*')) 23 >>>'*******PytHOn*******' 24 25 # 在\t前面不全8或8的倍数个空格,如果有字符的话字符先顶头 26 s2 = '\tpython\tfullstack' 27 print(s2.expandtabs()) 28 >>>' python fullstack' 29 30 31 # 公共方法len() 32 print(len(s)) 33 >>>'6' 34 35 36 # startswith、endswith 37 print(s.startswith('py')) #判断是否已(自定义)开头,注意!!区分大小写!!! 38 >>>'True' 39 40 print(s.startswith('py', 0, 4)) #切片判断是否已(自定义)开头,注意!!区分大小写!!! 41 >>>'True' 42 43 44 45 print(s.endswith('oN')) #判断是否已(自定义)结尾,注意!!区分大小写!!! 46 >>>'False' 47 48 print(s.endswith('oN',0, 6)) #切片判断是否已(自定义)结尾,注意!!区分大小写!!! 49 >>>True 50 51 52 # find、index 53 print(s.find('h')) #查找所引值,找不到不报错,返回-1。注意!!区分大小写!!! 54 >>>3 55 56 print(s.index('h')) #查找所引值,找不到会报错。注意!!区分大小写!!! 57 >>>3 58 59 60 61 # strip rstrip lstrip 62 s3 = ' python ' 63 print(s3.strip()) #去除空格 或者 去除两边的字符 64 >>>'python' 65 66 s3 = ' python@ ' 67 print(s3.rstrip()) #只能去除右边的空格 68 >>>' python@' 69 70 s = ' @python*@ ' 71 print(s.lstrip()) #只能去除左边的空格 72 >>>'@python*@ ' 73 74 #replace #Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。 75 76 #!/usr/bin/python 77 78 str = "this is string example....wow!!! this is really string"; 79 print str.replace("is", "was"); 80 print str.replace("is", "was", 3); 81 82 以上实例输出结果如下: 83 thwas was string example....wow!!! thwas was really string 84 thwas was string example....wow!!! thwas is really string 85 86 87 88 # is系列 89 name='python666' 90 print(name.isalnum()) #字符串由字母或数字组成 91 print(name.isalpha()) #字符串只由字母组成 92 print(name.isdigit()) #字符串只由数字组成 93 print(name.isalnum()) #是否全是字母和数字,并至少有一个字符 94 print(name.isspace()) #是否全是空白字符,并至少有一个字符 95 96 97 98 99 100 # count 101 s5 = 'life is short we use python' #统计某一字符出现几次 102 print(s5.count('s')) 103 >>>3 104 105 # split 106 s6 = '我爱你你爱我我就在家' #以(自定义)分割,最终形成一个列表此列表不含有这个分割的元素。 107 print(s6.split('我')) 108 >>>['', '爱你你爱', '', '就在家'] 109 110 # format 三种用法 111 s7 = '大家好我叫{},我今年{},我喜欢{},再说一遍我叫{}' 112 print(s7.format('ELijah', 26, 'coding', 'Elijah')) 113 # >>>大家好我叫ELijah,我今年26,我喜欢coding,再说一遍我叫Elijah 114 115 s8 = '大家好我叫{0},我今年{1},我喜欢{2},再说一遍我叫{0}' 116 print(s8.format('ELijah', 26, 'coding')) 117 # >>>大家好我叫ELijah,我今年26,我喜欢coding,再说一遍我叫Elijah 118 119 s9 = '大家好我叫{name},我今年{age},我喜欢{hobby},再说一遍我叫{name}' 120 print(s9.format(hobby='coding', name='ELijah', age=26)) 121 >>>大家好我叫ELijah,我今年26,我喜欢coding,再说一遍我叫Elijah
2.list(列表类型)
2.1 介绍
列表是我们以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储、修改等操作。
2.2 常用方法
1 # list列表常用方法 2 3 # 增 4 # 在列表末尾添加元素 5 lst = ['C','Java','C++','Ruby','PHP'] 6 lst.append('Python') 7 print(lst) 8 >>> ['C','Java','C++','Ruby','PHP','Python'] 9 10 # 在指定索引前插入元素 11 lst = ['C','Java','C++','Ruby','PHP'] 12 lst.insert(3,'Python') 13 print(lst) 14 >>> ['C','Java','C++','Python','Ruby','PHP'] 15 16 # 以迭代的方式在列表末尾添加元素 17 lst = ['C','Java','C++','Ruby','PHP'] 18 lst.extend('Python') 19 print(lst) 20 >>> ['C','Java','C++','Python','Ruby','PHP','P','y','t','h','o','n'] 21 22 # 删 23 # 删除指定索引的元素,默认无索引则删除最后一个元素 24 lst = ['C','Java','C++','Ruby','PHP'] 25 lst.pop(3) 26 print(lst) 27 >>> ['C','Java','C++','PHP'] 28 # pop()有返回值,返回删除掉的元素 29 print(lst.pop(3)) 30 >>> 'Ruby' 31 32 lst = ['C','Java','C++','Ruby','PHP'] #默认删除最后一个 33 lst.pop() 34 print(lst) 35 >>> ['C','Java','C++','Ruby'] 36 # pop()有返回值,返回删除掉的元素 37 print(lst.pop()) 38 >>> 'PHP' 39 40 # 删除指定元素 41 lst = ['C','Java','C++','Ruby','PHP'] 42 lst.remove('Ruby') 43 print(lst) 44 >>> ['C','Java','C++','PHP'] 45 46 # 清空列表所有元素 47 lst = ['C','Java','C++','Ruby','PHP'] 48 lst.clear() 49 print(lst) 50 >>> [] 51 52 # 删除列表 53 lst = ['C','Java','C++','Ruby','PHP'] 54 del lst 55 print(lst) 56 >>> Traceback (most recent call last): 57 File "D:practice.py", line 5, in <module> 58 print(lst) 59 NameError: name 'lst' is not defined 60 61 # 删除列表指定索引元素 62 lst = ['C','Java','C++','Ruby','PHP'] 63 del lst[3:] 64 print(lst) 65 >>> ['C','Java','C++'] 66 67 # 改 68 # 直接指定元素索引并赋予新值进行修改 69 lst = ['C','Java','C++','Ruby','PHP'] 70 lst[3] = 'Python' 71 print(lst) 72 >>> ['C','Java','C++','Python','PHP'] 73 74 # 利用切片进行迭代修改 75 lst = ['C','Java','C++','Ruby','PHP'] 76 lst[3:] = 'Python' 77 print(lst) 78 >>> ['C','Java','C++','P','y','t','h','o','n'] 79 80 # 查 81 # 通过循环迭代查询列表中元素 82 lst = ['C','Java','C++','Ruby','PHP'] 83 for i in lst: 84 print(i) 85 86 # 切片查询列表中一部分元素 87 lst = ['C','Java','C++','Ruby','PHP'] 88 print(lst[0:3]) 89 >>> ['C','Java','C++'] 90 91 #--------------------------------------- 92 93 # 列表排序 94 # 正序排序 95 lst = [4,3,2,5,7,8,9,1,6,0] 96 lst.sort() 97 print(lst) 98 >>> [0,1,2,3,4,5,6,7,8,9] 99 100 # 倒序排序 101 lst = [4,3,2,5,7,8,9,1,6,0] 102 lst.sort(reverse=True) 103 print(lst) 104 >>> [9,8,7,6,5,4,3,2,1,0] 105 106 # 翻转 107 lst = [4,3,2,5,7,8,9,1,6,0] 108 lst.reverse() 109 print(lst) 110 >>> [0,6,1,9,8,7,5,2,3,4] 111 112 #--------------------------------------- 113 114 # 列表的嵌套 115 lst = ['C','Java','C++','Python','Ruby','PHP',['HTML','GO','R','Objective-C']] 116 # 需求:将"HTML"改为"JavaScript" 117 lst[-1][0] = 'JavaScript' 118 print(lst) 119 # 需求:将"PHP"改为"php" 120 lst[5] = lst[5].lower() 121 print(lst) 122 123 #--------------------------------------- 124 125 # join()方法 126 # S.join():其中S是字符串连接符,join中参数必须是可迭代对象,join()方法输出可迭代对象的每一个元素,并用连接符将每一个元素连接 127 s = 'ilovepython' 128 l = ['C','Java','C++','Ruby','PHP','Python'] 129 print('_'.join(s)) 130 >>> 'i_l_o_v_e_p_y_t_h_o_n' 131 print('_'.join(l)) 132 >>> 'C_Java_C++_Ruby_PHP_Python'
2.3 重要方法
1 # string <——> list : 字符串与列表的相互转换 2 # string ——> list : split() 3 4 s = 'i_l_o_v_e_p_y_t_h_o_n' 5 print(s.split('_')) 6 >>> ['i', 'l', 'o', 'v', 'e', 'p', 'y', 't', 'h', 'o', 'n'] 7 8 # list ——> string : join() 9 l = ['C','Java','C++','Ruby','PHP','Python'] 10 print(''.join(l)) 11 >>> CJavaC++RubyPHPPython
2.4 range()方法
1 # range:相当于都是数字的列表 [0,1,2,3,4.....,99] 2 # range(起始值,终止值) 3 for i in range(0,100): 4 print(i) 5 6 # 默认起始值不写默认为0 7 for i in range(100): 8 print(i) 9 10 # 同索引一样,range也可以加步长,加步长的话默认的0起始值就不可以省略 11 for i in range(0,100,2): 12 print(i) 13 14 for i in range(100,0,-2): 15 print(i) 16 17 # ★★★注意!面试题:不报错,也不输出结果! 18 ''' 19 起始值:0 20 终止值:10 21 步长:-1 22 ''' 23 for i in range(0,10,-1): 24 print(i)
3.tuple(元组类型)
3.1 介绍
Python的元组与列表类似,同样可通过索引访问,支持异构,任意嵌套。不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。
3.2 常用方法
Tuple(元组)与List(列表)方法相同,不同在于元组不能更改
4.dict(字典类型)
4.1 介绍
4.1.1 字典介绍
字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根
据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变
类型,如:数字、字符串、元组。
4.1.2 数据类型划分:可变数据类型、不可变数据类型
1.不可变数据类型:元组、布尔值、数值、字符串 ——> 不可变数据类型又称为可哈希
2.可变数据类型:列表、字典、集合 ——>可变数据类型又称不可哈希
4.1.3 字典的特性
1.字典dict的key必须是不可变数据类型:元组、布尔值、数值、字符串
2.字典dict的value可以是任意数据类型
3.字典dict的优点:
(1)二分查找查询
(2)②存储大量的关系型数据
4字典的特点:无序的——>无索引
4.2 常用方法
1 dic = {'age': 26, 'name': 'yang', 'sex': 'male'} 2 3 # -------------------------------------------------------------------------- 4 # 增 - 2种 5 dic['height'] = 180 # 如果没有键,则增加 6 >>> {'age': 26, 'name': 'yang', 'sex': 'male','height':180} 7 dic['age'] = 18 # 如果有键,则覆盖 8 >>> {'age': 18, 'name': 'yang', 'sex': 'male'} 9 10 dic.setdefault('height') # 如果没有键,则增加,且如果不写值vlaue,则默认None 11 >>> {'age': 26, 'name': 'yang', 'sex': 'male','height':None} 12 dic.setdefault('height', 185) # 如果没有键,则增加 13 >>> {'age': 26, 'name': 'yang', 'sex': 'male','height':185} 14 dic.setdefault('age', 185) # 如果有键,不覆盖 15 >>>{'age': 26, 'name': 'yang', 'sex': 'male'} 16 17 # -------------------------------------------------------------------------- 18 19 # 删 - 4种 20 # ① 21 dic.pop('name1','No KEY') # 如果有没键,不报错,返回值会返回后面的参数文本 22 >>> print(dic.pop('name1','No KEY')) 23 >>> 'No KEY' 24 >>> print(dic) 25 >>> {'name': 'yang', 'sex': 'male', 'age': 26} 26 27 dic.pop('age') # 如果有键,则删除对应的键值对;返回值会返回删除掉的值value 28 >>> print(dic.pop('age')) 29 >>> 26 30 print(dic) 31 >>> {'sex': 'male', 'name': 'yang'} 32 33 # ② 34 dic.popitem() # 随机删除字典中的一组键值对 35 >>> {'name': 'yang', 'sex': 'male'} 36 37 # ③ 38 del dic['height'] # 如果没有键,则报错 39 >>> Traceback (most recent call last): 40 File "D:/python_fullstack_s9/day5/day5_课堂内容总结.py", line 31, in <module> 41 del dic['height'] # 如果没有键,则报错 42 KeyError: 'height' 43 del dic['age'] # 如果有键,则删除对应的键值对 44 >>> {'name': 'yang', 'sex': 'male'} 45 46 # ④ 47 dic.clear() # 清空字典 48 >>> {} 49 50 # -------------------------------------------------------------------------- 51 52 # 改 - 2种 53 # ① 54 dic['height'] = 185 # 如果没有键,则增加 55 >>> {'height': 185, 'age': 26, 'sex': 'male', 'name': 'yang'} 56 57 dic['age'] = 18 # 如果有键,则修改 58 >>> {'sex': 'male', 'name': 'yang', 'age': 18} 59 60 # ② 61 dic_new = {'lanuage':'PYTHON','addr':'昌平'} 62 dic.update(dic_new) # update(dict),update的参数必须是键值对,将dic_new所有的键值对覆盖添加(相同的覆盖,没有的添加)到dic中 63 >>> {'sex': 'male', 'addr': '昌平', 'lanuage': 'PYTHON', 'name': 'yang', 'age': 26} 64 65 # -------------------------------------------------------------------------- 66 67 # 查 - 5种 68 # ① 69 dic.keys() # 获取字典的键,返回dict.keys的数据类型,相当于list 70 71 默认打印字典的键 72 for i in dic1: 73 print(i) 74 75 for i in dic1.keys(): 76 print(i) 77 78 # ② 79 dic.values() # 获取字典的值,返回dict.values的数据类型,相当于list 80 81 默认打印字典的值 82 for i in dic1.values(): 83 print(i) 84 85 # ③ 86 dic.items() # 获取字典的键和值,返回由keys和values组成的元组 87 88 默认打印字典的键值 89 for i in dic1.items(): 90 print(i) 91 92 for keys,values in dic1.items(): 93 print(keys,values) 94 95 # ④ 96 dic.get('height','No KEY') # 如果没有键,则返回值为后面的参数文本 97 print(dic.get('height','No KEY')) 98 >>> No KEY 99 100 dic.get('age','No KEY') # 如果有键,则返回值为对应键的值 101 print(dic.get('age','No KEY')) 102 >>> 26 103 104 # ⑤ 105 print(dic['height']) # 如果有没键,则报错 106 >>> Traceback (most recent call last): 107 File "D:/python_fullstack_s9/day5/day5_课堂内容总结.py", line 79, in <module> 108 print(dic['height']) # 如果有没键,则报错 109 KeyError: 'height' 110 111 print(dic['age']) # 如果有键,则返回键对应的值 112 >>> 26 113 114 # -------------------------------------------------------------------------- 115 # 字典的嵌套 116 dic = { 117 'name':['a','b','c'], 118 'age':43, 119 'addr':{ 120 '1':1, 121 '2':2, 122 } 123 } 124 125 # 需求:在addr中加入'3':3这个键值对 126 dic['addr']['3'] = 3 127 print(dic)
5 公用方法
1 # 公共方法 2 # 统计元素长度 3 s = 'ilovepython' 4 l = ['C','Java','C++','Ruby','PHP','Python','C','JAVA'] 5 print(len(s)) 6 >>> 11 7 print(len(l)) 8 >>> 8 9 10 # 统计元素出现的次数 11 s = 'ilovepython' 12 l = ['C','Java','C++','Ruby','PHP','Python','C','JAVA'] 13 print(s.count('o')) 14 >>> 2 15 print(l.count('C')) 16 >>> 2 17 18 # 输出指定元素的索引值 19 s = 'ilovepython' 20 l = ['C','Java','C++','Ruby','PHP','Python','C','JAVA'] 21 print(l.index('Java')) 22 >>> 1 23 print(s.index('e')) 24 >>> 4
浙公网安备 33010602011771号