前言:上次学习到了if语句
,这次接着进行学习。
字典
字典能够准确地为各种真实物体建模,且能够将相关信息关联起来。
使用字典
字典是一系列的键——值对
,一个建对应一个值,值可以为数字、字符串等 在Python中,字典用放在花括号{}
中的一系列键—值对表示。
访问字典中的值 1 2 3 4 5 6 7 score = {'shuxu' :'80' ,'yuwen' :'90' } print(score['shuxu' ]) print(score['yuwen' ]) 80 90
添加键——值对
字典是一种动态结构,可随时在其中添加键—值对 添加时值用方括号[]
括起来
1 2 3 4 5 6 7 8 9 10 score = {'shuxu' :'80' ,'yuwen' :'90' } print(score) score['wuli' ] = 60 score['yingyu' ] = 90 print(score) {'shuxu' : '80' , 'yuwen' : '90' } {'shuxu' : '80' , 'yuwen' : '90' , 'wuli' : 60 , 'yingyu' : 90 }
创建一个空字典 1 2 3 4 5 6 7 score = {} score['wuli' ] = 60 score['yingyu' ] = 90 print(score) {'wuli' : 60 , 'yingyu' : 90 }
修改字典中的值 1 2 3 4 5 6 7 score = {'yuwen' :'80' } print(score) score['yuwen' ] = '90' print(score) {'yuwen' : '80' } {'yuwen' : '90' }
删除键——值对
使用del 语句
可以将相应的键—值对彻底删除,使用del 语句时,必须指定字典名和要删除的键。
1 2 3 4 5 6 7 score = {'yuwen' :80 ,'shuxu' :90 } print(score) del score['shuxu' ]print(score) {'yuwen' : 80 , 'shuxu' : 90 } {'yuwen' : 80 }
由类似对象组成的字典 如果用字典来存储众多对象的同一种信息,可以用这样的形式
1 2 3 4 5 6 7 8 9 10 yuwen_score = { 'me' : '90' , 'you' :'80' , 'he' :'70' , 'she' :'60' , } print("he score is" + yuwen_score['he' ]) he score is70
遍历所有的键——值对
遍历键值——对时,可声明两个变量,用于存储键—值对中的键和值。对于这两个变量,可使用任何名称。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 yuwen_score = { 'me' : '90' , 'you' :'80' , 'he' :'70' , 'she' :'60' , } for key,value in yuwen_score.items(): print("\nkey: " + key) print("value: " + value) key: me value: 90 key: you value: 80 key: he value: 70 key: she value: 60
遍历字典中的所有键
keys() 函数返回一个列表包含所有键
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 yuwen_score = { 'me' : '90' , 'you' :'80' , 'he' :'70' , 'she' :'60' , } for key in yuwen_score.keys(): print("\nkey: " + key) key: me key: you key: he key: she
按顺序遍历字典中的所有值
函数sorted()
来获得按特定顺序排列
的键列表的副本
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 yuwen_score = { 'me' : '90' , 'you' :'80' , 'he' :'70' , 'she' :'60' , } for key in sorted(yuwen_score.keys()): print("\nkey: " + key) key: he key: me key: she key: you
遍历字典中的所有值
方法values() ,返回一个值列表,不包含任何键。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 yuwen_score = { 'me' : '90' , 'you' :'80' , 'he' :'70' , 'she' :'60' , } for score in yuwen_score.values(): print("\nscore: " + score) score: 90 score: 80 score: 70 score: 60
如果值中有重复的,可以用集合set
,如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 yuwen_score = { 'me' : '90' , 'you' :'80' , 'he' :'70' , 'she' :'90' , } for score in set(yuwen_score.values()): print("\nscore: " + score) score: 90 score: 80 score: 70
嵌套
将一系列字典存储在列表中,或将列表作为值存储在字典中,这称为嵌套
字典列表 1 2 3 4 5 6 7 8 9 10 11 12 score_0 = {'subject' :'yuwen' ,'point' :60 } score_1 = {'subject' :'shuxu' ,'point' :70 } score_2 = {'subject' :'yingyu' ,'point' :80 } scores = [score_0,score_1,score_2] for score in scores: print(score) {'subject' : 'yuwen' , 'point' : 60 } {'subject' : 'shuxu' , 'point' : 70 } {'subject' : 'yingyu' , 'point' : 80 }
在字典中储存列表
每当需要在字典中将一个键关联到多个值时,都可以在字典中嵌套一个列表。
1 2 3 4 5 6 7 8 9 10 11 12 school = { 'teacher' : 'wang' , 'subjects' : ['shuxu' ,'yuwen' ], } print(school['teacher' ]) for subject in school['subjects' ]: print("\t" + subject) wang shuxu yuwen
用户输入和while循环
函数input() 让程序暂停运行,等待用户输入一些文本。获取用户输入后,Python将其存储在一个变量中。 使用函数input() 时,输入解读为字符串
。
1 2 3 4 5 6 message = input("please input message:\n" ) print("message is:" +message) please input message: 22222 message is :22222
函数int
使用函数int() 来获取数值输入 ,input()解读的为字符串,不能直接和整数比较
将数值输入用于计算和比较前,需将其转换为数值表示.
求模运算符
%
,将两个数相除并返回余数
1 2 3 4 5 6 7 print(4 % 3 ) print(5 % 3 ) print(6 % 3 ) 1 2 0
使用while 循环 通过一个例子来了解while的语法
1 2 3 4 5 6 7 8 9 10 number = 1 while number <= 5 : print(number) number +=1 1 2 3 4 5
在循环中使用continue
返回到循环开头,并根据条件测试结果决定是否继续执行循环
1 2 3 4 5 6 7 8 9 10 11 12 13 number = 0 while number <10 : number += 1 if number % 2 ==0 : continue print(number) 1 3 5 7 9
在列表之间移动元素 1 2 3 4 5 6 7 8 9 10 11 12 13 numbers = ['a' ,'b' ,'c' ] confirmed_numbers = [] while numbers: middle_number = numbers.pop() confirmed_numbers.append(middle_number) for confirmed_number in confirmed_numbers: print(confirmed_number.title()) C B A
删除包含特定值的所有列表元素 1 2 3 4 5 6 7 8 9 10 messages = ['a' ,'b' ,'c' ,'d' ,'a' ,'a' ] print(messages) while 'a' in messages: messages.remove('a' ) print(messages) ['a' , 'b' , 'c' , 'd' , 'a' , 'a' ] ['b' , 'c' , 'd' ]
使用用户输入来填充字典 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 responses = {} active = True while active: name = input("\nWhat is your name?" ) like_food = input("your like food is ?" ) responses[name] = like_food repeat = input("Would you like to let another person respond? (yes/ no) " ) if repeat =='no' : active = False for name,like_food in responses.items(): print(name+":" +like_food) What is your name?222 your like food is ?222 Would you like to let another person respond? (yes/ no) no 222 :222
这次就先学习到这,下次继续学习。