Python学习笔记——列表和字典

目录

一、列表

1.什么是列表

2.从列表提取单个元素

3.从列表提取多个元素

4.给列表增加/删除元素

增加

删除

总结

二、数据类型:字典

1.什么是字典

2.从字典中提取元素

3.给字典增加/删除元素

 总结

三、列表和字典的异同

1.列表和字典的不同点

2.列表和字典的相同点


一、列表

1.什么是列表

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

我们来看看列表(list)的代码格式:

students       =       ['小明','小刚','小红']
    ↓          ↓       ↓             ↓
  列表名     赋值号   中括号         逗号

['小明','小刚','小红']就是一个列表。

我们看个例子:

list = ['小红','19','1.65']
print(list)

远行结果如下:
['小红','19','1.65']

从这个例子可以得出一个知识点:列表很包容,各种类型的数据(整数/浮点数/字符串)无所不能包。

2.从列表提取单个元素

有了列表,那列表中具体的某个元素,要如何取出来?

这就涉及到一个新的知识点:偏移量。列表中的各个元素,好比教室里的某排学生那样,是有序地排列的,也就是说,每个元素都有自己的位置编号(即偏移量)。

每个元素都有自己的偏移量:

students = ['小明',         '小刚',         '小红']
              ↓               ↓               ↓
         students[0]     students[1]     students[2]

从上可得:1.偏移量是从0开始的,而非我们习惯的从1开始;2.列表名后加带偏移量的中括号,就能取到相应位置的元素。所以,我们可以通过偏移量来对列表进行索引(可理解为搜索定位),读取我们所需的元素。

用一段代码看下,代码如下(示例):

students = ['小明','小刚','小红']
print(students[1])

运行结果如下:
小刚

3.从列表提取多个元素

已经知道如何从列表中取出一个元素,那如果要同时取好几个呢?

我们先看一段代码:

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

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

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

通过上面的代码我们可以总结出列表切片口诀:左右空,渠到头;左要取,右不取。

前半句:冒号左边空,就要从偏移量为0的元素开始取;右边空,就要取到列表的最后一个元素。后半句:冒号左边数字对应的元素要拿,右边的不动。

还有一个细节要注意:偏移量取到的是列表中的元素,而切片则是截取了列表的某部分,所以还是列表,请你运行下列代码看一看。

在看个例子:

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

运行结果如下:
小红
['小红']

4.给列表增加/删除元素

增加

一个列表要增加增加一个元素,这时要用到append()函数给列表增加元素,append的意思是附加,增补。

代码如下(示例):

students = ['小明','小刚','小红']
students.append('小美')
print(students)

运行代码如下:
['小明','小刚','小红','小美']

注意:用append()给列表增加元素,每次只能增加一个元素。

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

删除

一个列表要删除一个元素,这时要用到del语句。

看下图先了解一下:

从中可以看出列表中删除中删除元素,语法是:del 列表名[元素的索引]。

事实上del语句非常方便,既能删除一个元素,也能一次删除多个元素(原理和切片类似,左取右不取)。

代码如下(示例):

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

运行代码如下:
['小明','小刚','小红']

总结

二、数据类型:字典

1.什么是字典

一个字典需要用中括号{ }把里面的各种数据框起来,里面的每一个数据叫作“元素”。每个元素之间都要用英文逗号隔开;而字典的元素是由一个个键值对构成的,用英文冒号连接,如'小明':95,其中我们把'小明'叫键(key),95叫值(value)。

我们来看看字典的代码格式:

scores      =        {  '小明':95  ,    '小刚'  :   90,'小红:90'}
   ↓        ↓         ↓            ↓       ↓    ↓    ↓
 字典名   赋值号   大括号        逗号        键  冒号  值

一个字典或者列表内有几个元素,可以用len()函数来得出一个列表或者字典的长度(元素个数),括号里放列表或字典名称。

代码如下(示例):

students = ['小明','小刚','小红']
scores = {'小明':95,'小刚':90,'小红':90}
print(len(students))
print(len(scores))

运行结果如下:
3
3

需要强调的是,字典中的键具备唯一性,而值可重复。

如果你不小心声明了两个以'小明'为键的【键值对】,后出现的【键值对】会覆盖前面的【键值对】。

代码如下(示例):

scores = {'小明': 95, '小红': 90, '小明': 90}
print(scores)

运行结果如下:
{'小明': 90, '小红': 90}

2.从字典中提取元素

在这里如何将小明的成绩(也就是值)打印出来。这就涉及到字典的索引,和列表通过偏移量来索引不同,字典靠的是键。

代码如下(示例):

scores = {'小明':95,'小刚':90,'小红':90}
print(scores['小明'])

运行结果如下:
95

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

3.给字典增加/删除元素

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

代码如下(示例):

scores = {'小明':95,'小红':90,'小刚':90}
del scores['小刚']
scores['小刚'] = 92
scores['小美'] = 85
print(scores)

运行结果如下:
{'小明':95,'小红':90,'小刚':92,'小美':85}

 总结

三、列表和字典的异同

1.列表和字典的不同点

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

# 如果==左右两边相等,值为True,不相等则为False。
print(1 == 1)  
# 1等于1,所以值为True

print(1 == 2)
# 1不等于2,所以为False

students1 = ['小明','小红','小刚']
students2 = ['小刚','小明','小红']
print(students1 == students2)
# 打印结果为"False"

scores1 = {'小明':95,'小红':90,'小刚':100}
scores2 = {'小刚':100,'小明':95,'小红':90}
print(scores1 == scores2)
# 打印结果为"True"

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

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

2.列表和字典的相同点

我们先来看第一个共同点:在列表和字典中,如果要修改元素,都可用赋值语句来完成。看一下代码:

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

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

运行结果如如下:
['小明','小蓝','小刚','小美']
{'小明':'女'}

所以,上面修改小刚成绩的时候,其实直接用赋值语句即可,del语句通常是用来删除确定不需要的键值对。

第二个共同点其实之前已经略有提及,即支持任意嵌套。除之前学过的数据类型外,列表可嵌套其他列表和字典,字典也可嵌套其他字典和列表。

先来看看第一种情况:列表嵌套列表。你在班级里成立了以四人为单位的学习小组。这时,列表的形式可以写成;tudents这个列表是由两个子列表组成的,现在有个问题是:我们要怎么把小芳取出来呢?

代码如下(示例):

students = [['小明','小红','小刚','小美'],['小强','小兰','小伟','小芳']]
print(students[1][3])

运行结果如下:
'小芳'

如图:

再来看看第二种情况:字典嵌套字典。

代码如下(示例):

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

运行结果如下:
88

看看列表和字典相互嵌套的情况,可以将代码和注释结合起来看。

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值