本文主要是介绍Python11_列表与字典,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
列表
什么是列表
一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开。
列表很包容,各种类型的数据(整数/浮点数/字符串)无所不能包。
list1 = ['小明',18,1.70]
print(list1)
#测试
#['小明', 18, 1.7]
从列表提取单个元素
偏移量:列表中的各个元素,好比教室里的某排学生那样,是有序地排列的,也就是说,每个元素都有自己的位置编号(即偏移量)
1.偏移量是从0开始的,而非我们习惯的从1开始;2.列表名后加带偏移量的中括号,就能取到相应位置的元素。
students = ['小明','小红','小刚']
print(students[0])
#测试
#小明
从列表提取多个元素
切片:冒号左右两边的数字指的是列表中元素的偏移量
用冒号来截取列表元素的操作叫作切片,顾名思义,就是将列表的某个片段拿出来处理。这种切片的方式可以让我们从列表中取出多个元素
左右空,取到头;左要取,右不取
偏移量取到的是列表中的元素,而切片则是截取了列表的某部分,所以还是列表
list2 = [5,6,7,8,9]
print(list2[:])
print(list2[2:])
print(list2[:2])
print(list2[1:3])
print(list2[2:4])
#[5, 6, 7, 8, 9]
#[7, 8, 9]
#[5, 6]
#[6, 7]
#[7, 8]
给列表增加/删除元素
增加语句
append()函数给列表增加元素,append的意思是附加,增补
格式是列表名.append( )
append()给列表增加元素,每次只能增加一个元素
append函数并不生成一个新列表,而是让列表末尾新增一个元素。而且,列表长度可变,理论容量无限,所以支持任意的嵌套
students = ['小明','小红','小刚']
students.append('小美')
print(students)
#test
#['小明', '小红', '小刚', '小美']
删除语句
del语句
语法是:del 列表名[元素的索引]
del语句非常方便,既能删除一个元素,也能一次删除多个元素(原理和切片类似,左取右不取)
students = ['小明','小红','小刚','小美']
del students[1]
print(students)
#test
#['小明', '小刚', '小美']
students = ['小明','小红','小刚','小美']
del students[1:3]
print(students)
#test
#['小明', '小美']
students = ['小明','小红','小刚','小美']
del students[:]
print(students)
#test
#[]
数据类型:字典
众所周知,一个老师的日常就是出卷、改卷。这次期中考呢,小明、小红、小刚分别考了95、90和90分。
假如我们还用列表来装数据的话,我们需要新创建一个列表来专门放分数,而且要保证和姓名的顺序是一致的,很麻烦。
所以类似这种名字和数值(如分数、身高、体重等)两种数据存在一一对应的情况,用第二种数据类型——“字典”(dictionary)来存储会更方便。
什么是字典
字典和列表有3个地方是一样的:1.有名称;2.要用=赋值;3.用逗号作为元素间的分隔符
而不一样的有两处:1.列表外层用的是中括号[ ],字典的外层是大括号{ }
2.列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。如'小明':95,其中我们把'小明'叫键(key),95叫值(value)。
这样唯一的键和对应的值形成的组合,我们就叫做【键值对】,上述字典就有3个【键值对】:'小明':95、'小红':90、'小刚':90
如果不想口算,我们可以用len()函数来得出一个列表或者字典的长度(元素个数),括号里放列表或字典名称。
这里需要强调的是,字典中的键具备唯一性,而值可重复。也就是说字典里不能同时包含两个'小明'的键,但却可以有两个同为90的值。
students = ['小明','小红','小刚']
scores = {'小明':95,'小红':90,'小刚':90}
print(len(students))
print(len(scores))
#test
#3
#3
从字典中提取元素
字典的索引,和列表通过偏移量来索引不同,字典靠的是键
和列表相似的是要用[ ],不过因为字典没有偏移量,所以在中括号中应该写键的名称,即字典名[字典的键]
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明'])
#test
#95
给字典增加/删除元素
删除字典里键值对的代码是del语句del 字典名[键],而新增键值对要用到赋值语句字典名[键] = 值
album = {'周杰伦':'七里香','王力宏':'心中的日月'}
del album['周杰伦']
print(album)
album['周杰伦'] = '十一月的萧邦'
print(album)
print(album['周杰伦'])
#test
#{'王力宏': '心中的日月'}
#{'王力宏': '心中的日月', '周杰伦': '十一月的萧邦'}
#十一月的萧邦
列表和字典的异同
列表和字典同作为Python里能存储多条数据的数据类型,有许多共同点,也有值得我们注意的不同点,那么接下来我们先来看看不同点
列表和字典的不同点
一个很重要的不同点是列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就是两个不同的列表
# 如果==左右两边相等,值为True,不相等则为False。
print(1 == 1)
# 1等于1,所以值为True
print(1 == 2)
# 1不等于2,所以为False
students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2)
scores1 = {'小明':95,'小红':90,'小刚':100}
scores2 = {'小刚':100,'小明':95,'小红':90}
print(scores1 == scores2)
#test
#True
#False
#False
#True
而字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是随机排列的。
这也是为什么两者数据读取方法会不同的原因:列表有序,要用偏移量定位;字典无序,便通过唯一的键来取值。
列表和字典的相同点
我们先来看第一个共同点:在列表和字典中,如果要修改元素,都可用赋值语句来完成。看一下代码:
list1 = ['小明','小红','小刚','小美']
list1[1] = '小蓝'
print(list1)dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)
#test
#'小明', '小蓝', '小刚', '小美']
#{'小明': '女'}
所以,上面修改小刚成绩的时候,其实直接用赋值语句即可,del语句通常是用来删除确定不需要的键值对。
scores = {'小明':95,'小红':90,'小刚':90}
#del scores['小刚']
#如果只需要修改键里面的值,可不需要del语句
scores['小刚'] = 92
第二个共同点其实之前已经略有提及,即支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。
列表嵌套列表
students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][1])
#test
#小兰
字典嵌套字典
scores = {'第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},'第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}}
print(scores['第二组']['小芳'])
#test
#88
列表和字典相互嵌套
# 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移量
students = {'第一组':['小明','小红','小刚','小美'],'第二组':['小强','小兰','小伟','小芳']}
print(students['第一组'][3])
#取出'第一组'对应列表偏移量为3的元素,即'小美'# 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的键
scores = [{'小明':95,'小红':90,'小刚':100,'小美':85},{'小强':99,'小兰':89,'小伟':93,'小芳':88}]
print(scores[1]['小强'])
#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。#test
#小美
#99
这篇关于Python11_列表与字典的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!