VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python教程 >
  • python基础教程之Python基础-列表、元组、字典、字符串(精简解析),全网最齐全。(2)

本站最新发布   Python从入门到精通|Python基础教程
试听地址  
https://www.xin3721.com/eschool/pythonxin3721/


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 输出:登鹳雀楼,王之涣,白日依山尽,黄河入海流,欲穷千里目,更上一层楼
复制代码
相关教程