Python基础语法(4)

本文介绍了Python编程中两种重要的数据类型——列表和字典。列表可以存储多个元素,通过偏移量进行索引和切片操作,支持添加和删除元素。字典则由键值对组成,通过键来获取值,同样支持增删操作。列表和字典都是可变数据类型,可以相互嵌套,并且在多层嵌套时需要通过逐层索引来访问元素。理解这些基本概念有助于提升Python编程能力。
摘要由CSDN通过智能技术生成

计算机利用数据有三种方式:

  1. 直接使用
  2. 计算和加工
  3. 做判断

对于编程新手来讲,掌握主要的数据类型是重中之重。

学习了两种新的数据类型——列表和字典,你会发现,它们比之前学过的“整数、浮点数、字符串”更加高级,更具有“包容性”。

前面学的几种类型,每次赋值只能保存一条数据。如果需要使用很多数据的时候,就会很不方便。

而列表和字典的作用,就是可以帮我们存储大量数据,让计算机去读取和操作

列表

  • 什么是列表

一个列表用中括号[]把里面的各种数据框起来,里面的每一个数据叫做元素。每个元素之间用英文逗号隔开。

list = ['李某', 20, 1.82]    #列表很包容,各种类型数据(整数/浮点数/字符串)无所不能包

print(list)

  • 从列表提取单个元素

这会涉及到一个新的知识点:偏移量。

列表中各个元素有序的排列,每个元素有自己的位置编号(即偏移量)。

偏移量是从0开始的,而不是从我们习惯的1开始;列表名后加带偏移量的中括号就能取到相应位置的元素。

所以我们通过偏移量来对列表进行索引(可理解为搜索定位),读取我们要找的元素。

  • 从列表提取多个元素

冒号来截取列表元素的操作叫作切片,顾名思义,就是将列表的某个片段拿出来处理。这种切片的方式可以让我们从列表中取出多个元素。

list = [5,6,7,8,9]

print(list[:])
# 打印出[5,6,7,8,9]
print(list[2:])
# 打印出[7,8.9]
print(list[:2])
# 打印出[5,6]
print(list[1:3])
#打印出[6,7]
print(list[2:4])    
#打印出[7,8]

列表切片口诀:左右空,取到头;左要取,右不取。

冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素。

冒号左边数字对应的元素要拿,右边的不动。

注:偏移量取到的是列表中的元素,而切片则是截取了列表的某部分,所以还是列表

  • 给列表增加/删除元素

用append()函数给列表增加元素,每次只能增加一个元素。append()函数后的参数只要满足数量是一即可(单个列表也会视作一个元素)。

append()函数并不生成一个新列表,而是在列表末尾新增一个元素,列表长度可变,理论上容量无限,所以支持任意的嵌套。

有一个方法可以根据索引而不是值从列表中删除一个元素:del语句。

这跟pop()方法不同,后者会返回一个值。del语句也可以用于从列表中删除片段或清除整个列表。也可用于删除整个变量。

字典

  • 什么是字典

字典和列表有三处共同之处:有名称;用=赋值;用逗号作为元素间的分隔符。

字典和列表不同有两处:列表外层用中括号[],字典外层用大括号{};列表中的元素是自成一体的,而字典的元素是由一个个键值对构成的,用英文冒号连接,分为键key和值value。

注:字典中的键具有唯一性,而值可重复。

  • 从字典中提取元素
scores = {'小明': 95, '小红': 90, '小刚': 90}
print(scores['小明'])

和列表相似,提取对应值要用[],不过因为字典没有偏移量,所以在中括号内应写上键的名称。

  • 给字典增加/删除元素

删除字典键值对的代码是del语句:del 字典名[键],而新增键值对要用到赋值语句:字典名[键] = 值。

列表和字典的异同

它们作为Python中能存储多条数据的数据类型,有许多共同点,也有需要注意的不同点。

  • 不同点

列表元素有自己明确的“位置”,所以即使看似相同的元素,只要在列表中所处位置不同,它们就是两个不同的列表。

students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2)

字典相比起来就随和很多,调动顺序也不影响。因为列表中的数据是有序排列的,而字典中的数据是随机排列的。

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

这也是为什么两者数据读取方法会不同的原因:列表有序,要用偏移量定位;字典无序,通过唯一的键来取值。

  • 相同点

第一个相同点:在列表和字典中,如果要修改元素,都可用赋值语句来完成。

list = ['小明','小红','小刚','小美']
list[1] = '小蓝'
print(list)

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

scores = {'小明':95,'小红':90,'小刚':90}
#del scores['小刚']
#如果只是想修改键里面的值,可不需要del语句
scores['小刚'] = 92

第二个相同点:支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。

第一种情况:列表嵌套列表。

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]

当我们在提取这种多级嵌套的列表/字典时,要一层一层地取出来,就像剥洋葱一样。

我们确定了小芳是在students[1]的列表里,小芳是students[1]列表里的第三个元素,所以要取出小芳,代码可以这么写:

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。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太阳少阴天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值