吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1927|回复: 6
收起左侧

[Python 转载] 【笔记04】数据升级,列表字典能处理

[复制链接]
inullbyte 发表于 2020-12-2 10:27

欢迎来到我的《Python 扫盲栏目》,力求用最短的时间,最简明的文字,让你了解、掌握 Python 基础语法。

我分享的笔记都是自己学习时的记录整理而成,不保证有多厉害,但还是那两句话:

不要嫌弃内容简陋,循序渐进嘛!
不要嫌弃知识简单,动手敲敲吧!

第 0 期:《做个尝试,从零到一》
第 1 期:《铺石造路,我学会了输入输出》
第 2 期:《玩转数据,这是第一步》
第 3 期:《学会判断,告诉电脑怎么做》
第 4 期:《数据升级,列表字典能处理》


列表和字典可以存储大量数据,以供计算机读取、操作。

列表

eg.

# 这就是一个列表
menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
# 这里是一个循环语句
for i in menu:
    print('我想吃' + i)

输出:

我想吃水煮鱼

我想吃火锅

我想吃美蛙

我想吃青菜

我想吃馒头

以上就是列表的使用,有了列表我们可以只需要一个变量就可以存放多个数据了。

menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头'] 中:menu 是一个变量,= 表示赋值,['水煮鱼', '火锅', '美蛙', '青菜', '馒头'] 是一个列表。

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

列表可以直接打印:

eg.

menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
print(menu)

输出:

['水煮鱼', '火锅', '美蛙', '青菜', '馒头']

注意:一个列表里可以包含多个、不同数据类型的数据。

eg.

person = ['李明', 17, 1.78]

从列表中提取元素

在列表中,每个元素都有自己的位置编号,也叫偏移量。

偏移量从 0 开始计算,我们可以通过偏移量获取列表中的每一个元素:

eg.

menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
print(menu[2])
# 列表名后加带有偏移量的中括号,即可取到相应元素

输出:

美蛙

我们也可以同时从一个列表中获取多个元素:

eg.

menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
print(menu[:])
print(menu[1:])
print(menu[:1])
print(menu[1:3])
print(menu[2:3])

输出:

['水煮鱼', '火锅', '美蛙', '青菜', '馒头']

['火锅', '美蛙', '青菜', '馒头']

['水煮鱼']

['火锅', '美蛙']

['美蛙']

以上通过 : 来截取列表中的元素的方法叫做切片,通过切片我们就可以从列表中取得多个元素。

切片的规则

  • 冒号左边空,就从偏移量为 0 的元素开始取
  • 冒号右边空,就要取到列表最后一个元素
  • 冒号左边有数字,取出对应数字的偏移量的元素
  • 冒号右边有数字,不取出对应数字的偏移量的元素

注意:通过偏移量取元素是可以直接取到列表中的元素,但是切片则只是截取了列表的一部分,取出的还是一个列表。

增加/删除元素

我们可以通过几个函数实现列表中元素的增加或者删除。

append()

eg.

menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
menu.append('统统 10 元!')
print(menu)

menu.append(['李明', 17, 1.78])
print(menu)

输出:

['水煮鱼', '火锅', '美蛙', '青菜', '馒头', '统统 10 元!']

['水煮鱼', '火锅', '美蛙', '青菜', '馒头', '统统 10 元!', ['李明', 17, 1.78]]

append() 函数每次只能接收一个参数,也就是使用 append() 给列表增加元素只能一个一个元素地增加。

Tags:

  • 列表中的元素可以是字符串、数字等,也可以是列表(列表的嵌套)
  • append() 函数接收的参数只能是一个,一个列表也算是一个参数
  • 通过 append() 函数向列表添加元素,新添加的元素会添加在列表末尾

由此还可知,列表的长度是可变的,且理论上容量无限,支持任意嵌套。

del 语句

del 语句可以根据索引而不是值从列表中删除一个元素,这与 pop 语句不同(pop 语句会返回一个值),del 语句也可以用于从列表中删除片段或者清除整个列表。

del 语句是非常方便的,既能删除一个元素,也能一次删除多个元素(类似于切片原理)

eg.

menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
del menu[2]
print(menu)

del menu[1:3]
print(menu)

输出:

['水煮鱼', '火锅', '青菜', '馒头']

['水煮鱼', '馒头']

字典

对于几组数据一一对应的数据需要存储时,一个列表是不够用的,这个时候就需要使用字典。

eg.

scores = {'李明':99, '川普':0, '旺财':87}

以上,scores 是变量名,= 表示赋值,{'李明':99, '川普':0, '旺财':87} 就是一个字典,字典内部依然使用英文逗号 , 分隔,外部使用大括号 {} 括起来。

字典里的元素是由一个一个的键值对组成的,键与值使用英文冒号连接,键(key):'李明'、值(value):99、键值对:'李明':99

注意:字典中的键是唯一不可重复的,但是值是不唯一可以重复的。

从字典中提取元素

提取字典中的元素并不能像列表一样使用偏移量来索引,字典的索引依靠键。

eg.

scores = {'李明':99, '川普':0, '旺财':87}
print(scores['川普'])

输出:

0

注意:使用键索引来提取值时,变量名后面接的是中括号 []

增加/删除元素

eg.

scores = {'李明':99, '川普':0, '旺财':87}
del scores['川普']
print(scores)

scores['川普'] = 59
print(scores)

输出:

{'李明':99, '旺财':87}

{'李明':99, '旺财':87, '川普':59}

以上,字典删除元素依然是使用 del 语句,通过 del 字典名[键] 就可以删除对应的键值对,而新增键值对则直接赋值 字典名[键] = 值

新增的键值对依然是增加在字典的末尾,而且我们也可以通过直接赋值的方式修改键对应的值。

eg.

scores = {'李明':99, '川普':0, '旺财':87}
scores['川普'] = 59
print(scores)

输出:

{'李明':99, '川普':59, '旺财':87}

列表和字典的异同

列表和字典有许多相似之处,但是又有所不同。

列表中的元素是有自己的位置的,即使两个列表的元素完全相同,但是元素排列的位置不同,这两个列表也是完全不同的,即列表中的元素是有序的,字典中的元素是无序的,这也是为什么列表可以通过偏移量来引索到元素,而字典就不行。

eg.

menu1 = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
menu2 = ['水煮鱼', '美蛙', '火锅', '青菜', '馒头']
print(menu1 == menu2)

scores1 = {'李明':99, '川普':0, '旺财':87}
scores2 = {'李明':99, '旺财':87, '川普':0}
print(scores1 == scores2)

输出:

False

True

① 无论是列表还是字典,都可以通过赋值语句来对元素进行修改。

eg.

menu = ['水煮鱼', '火锅', '美蛙', '青菜', '馒头']
menu[2] = '川普'
print(menu)

scores = {'李明':99, '川普':0, '旺财':87}
scores['川普'] = 59
print(scores)

输出:

['水煮鱼', '火锅', '川普', '青菜', '馒头']

{'李明':99, '川普':59, '旺财':87}

② 列表和字典都支持任意嵌套,除了一般的数据类型以外,列表可以嵌套其他列表和字典,字典也可以嵌套其他字典和列表。

eg.

# 列表嵌套列表
menu = [
    ['水煮鱼', '火锅', '美蛙'],
    ['青菜', '馒头']
]

# 获取 '青菜'
print(menu[1][0])

输出:

青菜

这个时候列表里元素的获取就有一点不同了,需要一层一层获取到,如上。

eg.

# 字典嵌套字典
scores = {
    '李明':{'身高':180, '体重':70}, 
    '川普':{'身高':150, '体重':99.9}, 
    '旺财':{'身高':172, '体重':59}
}

# 获取 '川普' 的 '身高'
print(scores['川普']['身高'])

输出:

150

下面是列表和字典相互嵌套:

eg.

# 字典里嵌套列表
scores = {
    '李明':[180, 70],
    '川普':[150, 99.9],
    '旺财':[172, 59]
}
# 获取某一元素同理
print(scores['川普'][0])

# 列表里嵌套字典
menu = [
    {'水煮鱼':80, '火锅':230, '美蛙':150},
    {'青菜':2, '馒头':0.5}
]
# 获取某一元素同理
print(menu[0]['火锅'])

输出:

230

给个免费评分我能写得更好!

免费评分

参与人数 3吾爱币 +2 热心值 +2 收起 理由
q515094609 + 1 + 1 我很赞同!
alsi + 1 谢谢@Thanks!
alittlebear + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

warmly 发表于 2020-12-2 11:08
写得通俗易懂!
LXS 发表于 2020-12-2 11:14
wanshiz 发表于 2020-12-2 17:30
q515094609 发表于 2020-12-2 23:08
对我这种小白太友好了,希望一直写下去
antcna 发表于 2020-12-9 21:00
开始跟着学习
lucifer52 发表于 2020-12-10 00:12
加油加油!支持你,继续努力,期待你的更新。
shr123 发表于 2020-12-15 23:21
楼主是和川普杠上了吗,一会赋值川普一会删除川普
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-12 09:04

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表