当前位置:
首页 > Python基础教程 >
-
Python基础-列表、元组、字典、字符串(精简解析),全网最齐全。(2)
name"]) # 输出tony
4 print(tony_dic[(6,)]) # 输出(7,)
2. 字典的增加:setdefault() 方法。
1 # setdefault()键存在就不添加,不存在就添加默认的值。 2 3 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 4 5 dic.setdefault('weight', 170) # 键存在就不添加,不存在就添加默认的值。 6 7 print(dic) 8 9 dic.setdefault('weight', 180) 10 11 print(dic) 12 13 输出结果:{'name': 'zs', 'age': 10, 'height': 1.75, 'weight': 170} 14 15 {'name': 'zs', 'age': 10, 'height': 1.75, 'weight': 170} 16 17 --------------------------------------------------------------------------------------- 18 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 19 20 dic['name'] = 'ww' # 根据key键来设置值,如果key存在就直接覆盖原有的值 21 22 print(dic) 23 24 输出结果: {'name': 'ww', 'age': 10, 'height': 1.75}
3.字典的删除:pop(),popitem(),clear(),del 方法。
1 pop() 2 3 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 4 5 dic.pop('name') # 根据键删除值 6 7 print(dic) 8 9 输出结果: {'age': 10, 'height': 1.75} 10 ------------------------------------------------------------------------------------------ 11 popitem() 12 13 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 14 15 dic.popitem() # 随机删除一个键值对 16 17 print(dic) 18 19 20 输出结果:{'name': 'zs', 'age': 10} 21 22 ----------------------------------------------------------------------------------------- 23 clear() 24 25 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 26 27 dic.clear() # 清空字典里所有的键值对 28 29 print(dic) 30 31 32 输出内容:{} # 字典还是存在的,只是没有数据,所有输出空字典。 33 ======================================= 34 35 del dic # 字典删除 36 37 print(dic) # 字典删除了,所有输出会报错,找不到字典 38 39 输出结果:NameError: name 'dic' is not defined (报错)
4.字典的修改:使用键修改或者update()方法。
1 # 使用key修改: 2 3 dic = {'name':'zs','age':10,'height':1.78} 4 5 dic['name'] = '张三' 6 7 print(dic) 8 9 10 输出结果: {'name':'张三','age':10,'height':1.78} 11 12 --------------------------------------------------------------------------------------- 13 14 update() 按照字典的格式更新键的内容,若果字典不存在这个键,就创建这个键和值 15 16 dic = {'name': 'zs', 'age': 10, 'height': 1.78} 17 18 dic1 = {'name':'张三','weight':152} 19 20 dic.update(dic1) 21 22 print(dic) 23 24 25 输出结果:{'name': '张三', 'age': 10, 'height': 1.78, 'weight': 152}
5.字典的查找:get(),keys(),values(),items(),len()方法。
1 c = {'name': 'zs', 'age': 10, 'height': 1.78} 2 3 print(dic.get('name')) # get()根据键来获取相应的值,如果键不存在,默认返回None 4 5 print(dic.keys()) # 返回一个包含字典所有key的列表 6 7 print(dic.values()) # 返回一个包含字典所有value的列表 8 9 print(dic.items()) # 返回字典键值,返回呈元组的形式 10 11 print(len(dic)) # 测量字典键值对的个数,注意是键值对。 12 13 14 15 16 输出结果: 17 zs 18 19 dict_keys(['name', 'age', 'height']) 20 21 dict_values(['zs', 10, 1.78]) 22 23 dict_items([('name', 'zs'), ('age', 10), ('height', 1.78)]) 24 25 3
6.for 循环及字典的遍历:keys(),values(),items() 方法,其中items()方法有两种遍历方式。
1 dic = {'name': 'zs', 'age': 10, 'height': 1.75} 2 3 # 获取所有的key 4 5 for key in dic: 6 7 print(key) 8 9 for key in dic.keys(): 10 11 print(key) 12 13 输出结果: 14 name 15 16 age 17 18 height 19 ------------------------------------------------------------------------------------- 20 # 获取所有的value 21 22 for value in dic.values(): 23 24 print(value) 25 26 输出结果:zs 27 28 10 29 30 1.75 31 ------------------------------------------------------------------------------------- 32 # 获取所有的键值对,并以元组的形式返回: 33 34 for item in dic.items(): 35 36 print(item) 37 38 39 输出结果: 40 ('name', 'zs') 41 42 ('age', 10) 43 44 ('height', 1.75) 45 46 47 # 字典的遍历: 48 49 for key,value in dic.items(): 50 51 print(key,value) 52 53 54 输出结果: 55 56 name zs 57 58 age 10 59 60 height 1.75 ------------------------------------
7:字典的各种排序,sorted()方法运用。后面可以接keys(),values(),items(),还有lamda方法
1 dic_height = {"tony": 1.73, 2 "lucy": 1.88, 3 "lili": 1.66, 4 "kity": 1.70 5 } ------------------------------------- 6 '''输出value值的列表''' 7 v = sorted(dic_height.values()) # 通过value排序,从小到大,升序排序 8 v2 = sorted(dic_height.values(), reverse=True) # 通过value排序,从小到大,降序排序 ------------------------------------------------------------------------------------ 9 '''输出key值的列表''' 10 d = sorted(dic_height.keys()) # 通过key顺序升序排序 11 d2 = sorted(dic_height.keys(), reverse=True) # 通过key顺序降序排序 12 k = sorted(dic_height) # 通通过key顺序升序排序(默认排序key) 13 k2 = sorted(dic_height, reverse=True) # 通通过key顺序降序排序(默认排序key) ------------------------------------------------------------------------------------ 14 '''输出('key',value)为元组的数据列表''' 15 i = sorted(dic_height.items()) # 通过key顺序排升序,输出元组数据类型的列表 16 i2 = sorted(dic_height.items(), reverse=True) # 通过key顺序排降序,输出元组数据类型的列表 17 t = sorted(dic_height.items(), key=lambda item: item[1]) # 1和-1结果一样 18 # 通过value顺序排升序,输出元组数据类型的列表 19 t2 = sorted(dic_height.items(), key=lambda item: item[1], reverse=True) # 1和-1结果一样 20 # 通过value顺序排降序,输出元组数据类型的列表 21 --------------------------------------------------------------------------------------- 22 ############################################### 23 print(v) # 输出为:[1.66, 1.7, 1.73, 1.88] 24 print(v2) # 输出为:[1.88, 1.73, 1.7, 1.66] 25 print(d) # 输出为:['kity', 'lili', 'lucy', 'tony'] 26 print(d2) # 输出为:['tony', 'lucy', 'lili', 'kity'] 27 print(k) # 输出为:['kity', 'lili', 'lucy', 'tony'] 28 print(k2) # 输出为:['tony', 'lucy', 'lili', 'kity'] 29 print(i) # 输出为:[('kity', 1.7), ('lili', 1.66), ('lucy', 1.88), ('tony', 1.73)] 30 print(i2) # 输出为:[('tony', 1.73), ('lucy', 1.88), ('lili', 1.66), ('kity', 1.7)] 31 print(t) # 输出为:[('lili', 1.66), ('kity', 1.7), ('tony', 1.73), ('lucy', 1.88)] 32 print(t2) # 输出为:[('lucy', 1.88), ('tony', 1.73), ('kity', 1.7), ('lili', 1.66)]
其实还有更复杂的排序,关键在于lamda方法的使用这里先不讲lamda方法。
四.字符串
=====================================================
1.字符串的创建定义以及遍历,for...in... 方法:
字符串是有序的,不可更改的,元素用引号包围的序列。
三引号,双引号或单引号中的数据就是字符串。例如:"hello" 'world'
1 str1 = "hello python" # 空格也占用字符 2 str2 = "我们是8期的学员" 3 print(str1[5]) # 空格被打印,索引5是空格 4 print(str1[3]) # 打印顺数索引3的数据 打印l 5 print(str1[-1]) # 打印逆数第一个数据,打印n 6 print(str1[::-1]) # 逆序打印(翻转),打印nohtyp olleh 7 8 for char in str2: # 字符串遍历 9 print(char) # 逐个竖着输出"我们是8期的学员" 10 11 我 12 们 13 是 14 8 15 期 16 的 17 学 18 员
2.字符串的统计操作,len(),count(),index()方法。
1 str1 = "hello python" 2 # 字符串长度的统计 3 print(len(str1)) # 输出12 4 # 字符出现的次数 5 print(str1.count("thon")) # 输出1 6 print(str1.count("l")) # 输出2 7 print(str1.count("abcd")) # 输出0 8 # 某一个字符串出现的位置 9 print(str1.index("llo")) # "llo"里面的第一个字母出现的索引位置 输出2 10 print(str1.index("abcd")) # 会报错substring not found,因为abcd不存在
3.字符串的查找:count(),find(),rfind(),index(),rindex()方法。
1 s = 'Hello world Python' # 注意:字符串中的空格也算在索引内 2 3 print(s.count('o')) # 计算'o'在是中的个数。输出3 4 5 print(s.find('l')) # 查找,返回从左第一个指定字符的索引,找不到返回-1,输出2 6 7 print(s.find('c')) # 字符串中没有发现就返回-1 输出-1 8 9 print(s.rfind('o')) # 字符串从右至左找第一个字符,但是索引是从左往右索引。输出16 10 11 print(s.index('h')) # 寻找指定字母在字符串的位置的索引,找不到会报错。输出0 12 13 print(s.rindex('h')) # 和rfind类似,但是找不到会报错 输出15 14 15
4.字符串的拆分和连接:
拆分:split(),partition(),splitlines(),
1 s = 'Hello world Python' 2 3 print(s.split('w')) # 按照指定内容进行拆分,分为指定部分前 和指定部分后两部分。返回列表形式。 4 5 输出结果: ['Hello ', 'orld Python'] 6 7 8 print(s.partition('orl')) # 按照指定内容进行拆分,分为指定部分前 ,指定部分和 指定部分后三部分,返回元组形式。 9 10 输出结果: ('Hello w', 'orl', 'd Python') 11 12 13 s = 'Hello\n world\n Python' 14 15 print(s.splitlines()) # 按照换行符分割,返回列表的形式 16 17 输出结果: ['Hello', ' world', ' Python'] 18 19 20 print(s.splitlines(keepends=False)) # keepends=False 默认不显示换行符,返回列表的形式 21 22 输出结果:['Hello', ' world', ' Python'] 23 24 25 print(s.splitlines(keepends=True)) # keppends=True 默认显示换行符,返回列表的形式 26 27 输出结果:['Hello\n', ' world\n', ' Python'] 28
连接:join()方法。
1 str1 = " \t\n登鹳雀楼\n\t王之涣\r\n 白日依山尽 \t \n黄河入海流\t\n 欲穷千里目\n\r\t更上一层楼" 2 print(str1) 3 4 输出很乱,如下: 5 6 登鹳雀楼 7 王之涣 8 白日依山尽 9 黄河入海流 10 欲穷千里目 11 更上一层楼 12 13 # 拆分字符串 14 poemList = str1.split() # 默认空白字符分割()里面可以写分割字符str.split("分割关键字符") 15 print(poemList) 16 输出:['登鹳雀楼', '王之涣', '白日依山尽', '黄河入海流', '欲穷千里目', '更上一层楼'] 17 18 # 字符串的合并 19 ret = " ".join(poemList) # 用空格连接 20 print(ret) 21 输出:登鹳雀楼 王之涣 白日依山尽 黄河入海流 欲穷千里目 更上一层楼 22 23 ret = ",".join(poemList) # 用,连接 24 print(ret) 25 输出:登鹳雀楼,王之涣,白日依山尽,黄河入海流,欲穷千里目,更上一层楼
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式