python基础教程第四章 列表和字典

python 2019-11-22 61 次浏览 次点赞

#列表
list=['小明','18','1.70']
#一个列表需要用中括号[ ]把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用 
英文逗号隔开

#从列表提取单个元素
#这就涉及到一个新的知识点:偏移量。列表中的各个元素,好比教室里的某排学生那样,是有序地排列 
的,也就是说,每个元素都有自己的位置编号(即偏移量)。
list  =  ['小明','18','1.70']
#从上图可得:1.偏移量是从0开始的,而非我们习惯的从1开始;2.列表名后加带偏移量的中括号,就能取 
到相 
应位置的元素。
#我们可以通过偏移量来对列表进行索引(可理解为搜索定位),读取我们所需的元素。
students = ['小明','小红','小刚']
print(students[0])  

#从列表提取多个元素
#一个提醒:下列:左右两边的数字指的是列表中元素的偏移量,记住偏移量(索引)始终是从0开始的。
list2 = [5,6,7,8,9]
print(list2[:])
# 打印出[5,6,7,8,9]
print(list2[2:])
# 打印出[7,8.9]
print(list2[:2])
# 打印出[5,6]
print(list2[1:3])
#打印出[6,7]
print(list2[2:4])    
#打印出[7,8]

#给列表增加/删除元素
# 请运行以下代码:报错后,可读一下报错信息,然后将第6行注释掉再运行。
list3 = [1,2]
list3.append(3)
print(list3)

#list3.append(4,5)#append后的括号里只能接受一个参数,但却给了两个,也就是4和5。所以,用 
append()给列表增加元素,每次只能增加一个元素
list3.append([4,5])
print(list3)

students = ['小明','小红','小刚','小美']
del students[2]
print(students)


#数据类型:字典
scores = {'小明':95,'小红':90,'小刚':90}
#字典和列表有3个地方是一样的:1.有名称;2.要用=赋值;3.用逗号作为元素间的分隔符
#列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接。如'小明':95, 
其 
中我们把'小明'叫键(key),95叫值(value)。
#这样唯一的键和对应的值形成的组合,我们就叫做【键值对】,上述字典就有3个【键值对】:'小 
明':95、'小红':90、'小刚':90
#如果不想口算,我们可以用len()函数来得出一个列表或者字典的长度(元素个数),括号里放列表或字 
典名称。
#直接运行代码即可
students = ['小明','小红','小刚']
scores = {'小明':95,'小红':90,'小刚':90}
print(len(students))
print(len(scores))
#打印小明成绩
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明'])

#给字典增加/删除元素
# 直接运行下面的代码,留意字典以及新的键值对是如何增加的:
album = {'周杰伦':'七里香','王力宏':'心中的日月'}
del album['周杰伦']
print(album)

album['周杰伦'] = '十一月的萧邦' #增加
print(album)
print(album['周杰伦'])
#删除字典里键值对的代码是del语句del 字典名[键],而新增键值对要用到赋值语句字典名[键] = 值
scores = {'小明':95,'小红':90,'小刚':90}

#列表和字典的不同点
#列表中的元素是有自己明确的“位置”的,所以即使看似相同的元素,只要在列表所处的位置不同,它们就 
是两个不同的列表
#字典相比起来就显得随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是 
随机排列的。
students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2)  #False

scores1 = {'小明':95,'小红':90,'小刚':100}
scores2 = {'小刚':100,'小明':95,'小红':90}
print(scores1 == scores2)  #True

#在列表和字典中,如果要修改元素,都可用赋值语句来完成
list1 = ['小明','小红','小刚','小美']
list1[1] = '小蓝'
print(list1)

dict1 = {'小明':'男'}
dict1['小明'] = '女'
print(dict1)   

#多级嵌套的列表嵌套列表  取出小红
students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][3])

#字典嵌套字典。
scores = {
    '第一组':{'小明':95,'小红':90,'小刚':100,'小美':85},
    '第二组':{'小强':99,'小兰':89,'小伟':93,'小芳':88}
    }
print(scores['第二组']['小芳'])

#列表和字典相互嵌套的情况
# 最外层是大括号,所以是字典嵌套列表,先找到字典的键对应的列表,再判断列表中要取出元素的偏移 
量
students = {
    '第一组':['小明','小红','小刚','小美'],
    '第二组':['小强','小兰','小伟','小芳']
    }
print(students['第一组'][3])
#取出'第一组'对应列表偏移量为3的元素,即'小美'

# 最外层是中括号,所以是列表嵌套字典,先判断字典是列表的第几个元素,再找出要取出的值相对应的 
键
scores = [
    {'小明':95,'小红':90,'小刚':100,'小美':85},
    {'小强':99,'小兰':89,'小伟':93,'小芳':88}
    ]
print(scores[1]['小强'])
#先定位到列表偏移量为1的元素,即第二个字典,再取出字典里键为'小强'对应的值,即99。

#我们知道了列表和字典的不同:列表的基本单位是元素,而字典里是键值对。所以,两者提取数据的方式 
也不同。
#你可以通过头两个练习来验证自己已经掌握了。
#而在第三道练习,你会学会提取元组里的数据
#取出love
list1 = [{'嫉妒':'envy'},{'恨':'hatred'},{'爱':'love'}]
print(list1[2]['爱'])

dict1 = {1:['cake','scone','puff'],2:['London','Bristol','Bath'],3: 
['love','hatred','envy']}
print(dict1[3][0])

#元组(tuple)元组和表格很相似,不过,它是用小括号来包的
tuple1 = ('A','B')
list2 = [('A','B'),('C','D'),('E','F')]

print(tuple1[0])
print(list2[1][1])

# 从代码里,也可看出:1.元组内数据的提取也是用偏移量;2.元组也支持互相嵌套。
#元组的写法是把数据放在小括号()中,它的用法和列表用法类似,主要区别在于列表中的元素可以随时修 
改,但元组中的元素不可更改。


#练习要求
#在未来世界里,一个新建的童话镇吸引了不少人入住。
#不过,在人群里隐藏着一只狼,会威胁大家的安全。
#童话镇的镇长希望你能找到它,并揭发其身份。
#用程序语言就是说:列表中有个字符串是“狼”,将其打印出来吧。
ownee = [
    {'海底王国':['小美人鱼''海之王''小美人鱼的祖母''五位姐姐'],'上层世界':['王子','邻国公 
主']},'丑小鸭','坚定的锡兵','睡美人','青蛙王子',
[{'主角':'小红帽','配角1':'外婆','配角2':'猎人'},{'反面角色':'狼'}]
]
print(ownee[5][1]['反面角色'])

本文由 laowang 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。

还不快抢沙发

添加新评论