Python熟练使用字典和了解元组与列表的区别

字典是Python中存储数据的一种方式,Python字典中可以用 keys() 命令获取一个字典中的所有的键。而元组是存放多个数据的容器,和列表很像。

in 和 not in

如何判断一个元素是否在列表中?
我们可以使用 元素 in 列表 的方法,判断一个元素是否在列表中!

py
<br />
pencil_box = ['pen', 'ruler', 'eraser']<br />
a = 'ruler'<br />
if a in pencil_box:<br />
    print('Yes')<br />

关键词 in 也可以用于循环中,实现列表的遍历

py
<br />
for x in ['A', 'B', 'C']:<br />
    print(x, end='')<br />

运行结果

ABC

判断元素不在列表中,我们可以使用 not in 列表
not in 是 不在…中 的意思,它的用法与 in 类似。

py
<br />
seasons = ['春天', '夏天', '秋天', '冬天']<br />
a = '早晨'<br />
if a not in seasons:<br />
    print(a, '不是季节')<br />

运行结果

早晨 不是季节

print()多参数

我们如何在print()命令中再添加一个参数 ?

print(参数1, 参数2)

这样,我们就可以将两个参数打印在同一行了。要注意,打印的结果中,两个值之间会有空格隔开。

py
<br />
print(23,4,56)<br />

运行结果

23 4 56

py
<br />
a = 'xiaowangzi'<br />
print(a, 7)<br />

运行结果

xiaowangzi 7

字典

字典是Python中存储数据的一种方式,Python字典中可以用 keys() 命令获取一个字典中的所有的键。而元组是存放多个数据的容器,和列表很像。

字典名称 = {键:值, 键:值}

py
<br />
gender = {'xiangwangzi':男, 'xiaohua':女, 'kevin':男}<br />
print(gender)<br />

字典里的key不可以重复,是唯一的。但value可以重复。

查找字典中的值

在Python中可以通过字典的键key来查找它对应的值value

字典名称[键key]

py
<br />
trees = {'松树':120, '玉兰树':50, '槐树':70}<br />
a = trees['玉兰树']<br />
print(a)<br />

运行结果

50

修改字典中的值

也可以根据字典中的key查找对应的值value,然后再修改这个value值。

py
<br />
trees = {'松树':120, '玉兰树':50, '槐树':70}<br />
trees['玉兰树'] = 60<br />
print(trees)<br />

运行结果

{‘松树’:120, ‘玉兰树’:60, ‘槐树’:70}

字典的遍历

可以使用for循环遍历字典

py
<br />
trees = {'松树':120, '玉兰树':50}<br />
for i in trees<br />
    print(i,trees[i])<br />

运行结果

松树 120
玉兰树 50

在字典中, 使用key in 字典名称的方法可以判断字典中是否包含这个键。

py
<br />
trees = {'松树':120, '玉兰树':50}<br />
if '玉兰树' in trees:<br />
    print('YES')<br />

字典和列表的对比

字典和列表都是python中常见的数据结构。
列表:由一系列值组成的数据结构,用数字索引来获取它的元素 索引取值
字典:对键值对的形式来存放数据的,通过键来获取对应的值。

列表

py
<br />
name = ['kevin', 'xiaowangzi', 'wangzi']<br />
print(name[1])<br />

字典

py
<br />
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}<br />
print(age['xiaowangzi'])<br />

keys()命令

python字典中可以用 keys() 命令获取一个字典中的所有的键。

字典名称.keys()

py
<br />
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}<br />
print(age.keys())<br />

运行结果

[‘kevin’, ‘xiaowangzi’, ‘wangzi’]

如何判断要查询的key是否存在?
可以用keys()命令得到所有的键,再用关键词 in 来判断要查询的 key 在不在它们之中。

py
<br />
info = {'01':'苹果', '02':'脐橙', '03':'香蕉'}<br />
n = '02'<br />
if n in info.keys():<br />
    x = info[n]<br />
    print(x)<br />
else:<br />
    print('没有这个水果')<br />

运行结果

脐橙

values()命令

python字典中可以用 values() 命令获取一个字典中的所有的值。

字典名称.values()

py
<br />
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}<br />
x = age.values()<br />
print(x)<br />

运行结果

[7,10,23]

新增键值

格式:

字典名称[key] = value

py
<br />
dict = {'飞机': 12}<br />
dict['火车'] = 9<br />
print(dict)<br />

运行结果

{‘飞机’:12, ‘火车’:9}

字典中的 key 是唯一的,一个字典中不会出现相同的 key 。 所以如果新添加的key在字典中存在,那么只会修改 key 对应的 value ,而不会增加新的键值对。

py
<br />
dict = {'飞机': 12}<br />
dict['飞机'] = 9<br />
print(dict)<br />

运行结果

{‘飞机’:9}

字典的综合运用

任务:完成数据库系统
三个功能:

  1. 退出功能
  2. 查询数据功能
  3. 添加数据功能

py
<br />
data = {'机器学习核晶':'反转乾坤', '大数据核晶':'数据回溯', '人工智能核晶':'裁决', '马文明斯基核晶':'智能创造'}<br />
while True:<br />
    cmd = input()<br />
    if cmd == 'q':<br />
        print('退出')<br />
        break<br />
    elif cmd == 's':<br />
        name = input()<br />
        if name in data.keys():<br />
            print(data[name])<br />
        else print('没有查询到数据!')<br />
    elif cmd == 'a'<br />
        name = input()<br />
        name = func()<br />
        data[name] = func<br />
        print(data)<br />
    else<br />
        print('指令无效!')<br />

元组

元组:存放多个数据的容器,和列表很像。 注意: 元组中的元素是不可以被修改的。

创建

要创建一个元组,需要使用小括号,括号里填入多个元素,并用逗号分隔开。

py
<br />
tup = ('幼年', '少年', '青年')<br />

如果要创建的元组只包含一个元素,在定义元组时,在元素的后面加一个逗号,否则括号会被当作运算符使用。

可以往元组里存放不同类型的数据,比如字符串,数字等,各元素的数据类型也可以不相同。

py
<br />
tup = (0, 1, 'Hello', 'World')<br />

索引

元组的索引同样是从0开始。

data = (‘A’, ‘B’, ‘C’)
索引 0 1 2

py
<br />
data = ('春', '夏', '秋', '冬')<br />
print(data[2])<br />

运行结果

索引也可以从尾部开始,最后一个元素的索引为 -1, 倒数第二个元素的索引为 -2,以此类推。

data = (‘A’, ‘B’, ‘C’)
索引 -3 -2 -1

py
<br />
data = ('风', '雨', '雷', '电')<br />
print(data[-2])<br />

运行结果

切片

想要获取元组中连续的一段元素,可以通过元组的切片来实现。元组切片得到的是一个新的元组。

元组名称[索引1:索引2

py
<br />
data = ('A', 'B', 'C', 'D', 'E')<br />
print(data[1:4])<br />

运行结果

‘B’, ‘C’, ‘E’

切出的新元组包含起始索引对应的元素,但不包含结束索引对应的元素。

当需要获取某一位置之前的所有元素,可以省略冒号前面的索引;当需要获取某一位置之后的所有元素,可以省略冒号后面的索引。

示例中的元组data,想要切片的得到’D’之 前的元素(不含’D’),可以书写代码:data[:3]

tuple()命令

使用tuple()命令可以将列表转换成元组。 tuple 是元组的意思。

py
<br />
height = ('12', '10', '8', '11', '5', '3')<br />
height.remove(11)<br />
tup = tuple(height)<br />
print(tup)<br />

运行结果

(12, 10, 8, 5, 3)

可以使用列表名 .remove()的方式, 删除列表中的指定元素。remove()括号中,填入 的是 需要删除的元素。

index()命令

列表的index()命令可以获取指定元素的索引

列表名.index()

py
<br />
info = ['G', 'O', 'O', 'D']<br />
print(info[1])<br />

运行结果

1

当列表有两个相同的元素时,index()得到是第一个元素的索引。

py
<br />
height = ('12', '10', '8', '6', '9', '3')<br />
height.remove(9)<br />
a = height.index(10)<br />
height.insert(a,11)<br />
tup = tuple(height)<br />
print(tup)<br />

运行结果

(12, 11, 10, 8, 6, 3)

可以使用列表名.insert()的方式, 向列表中插入元素。括号中第一个参数表示需要插入的索引位置,第二个参数表示需要插入的元素。

可变循环

range()参数

书写for循环时,要在range( )函数中设置参数:开始值和结束值,来确定循环变量的取值范围。

range(start, stop)

py
<br />
for i in range(1, 4)<br />
    print(i)<br />

运行结果

1
2
3

range(1,4)返回的是一个整数序列,这个序列包含开始值1,但并不包含结束值4。

结束值是不可以被省略的,当range()函数只有1个参数时,这个参数就是结束值。此时,开始值默认为0,计数从0开始。

print()不换行

end 是print()命令的一个参数,用来设定打印结果以什么结尾。

print(打印内容,end = 结尾内容 )

省略参数end时,默认end= ‘\n’,\n是换行符,所以执行print()命令会默认换行。我们可以把end设为其他字符串。

py
<br />
print(1)<br />
print(2)<br />

运行结果

1
2

py
<br />
print(1,end='')<br />
print(2)<br />

运行结果

12

py
<br />
print(1, end=' ')<br />
print(2)<br />

运行结果

1 2

循环的步长

也可以在range()函数中再添加一个参数,让变量 i 每次都增加相同的数值,这个参数叫做“步长”
步长:可省略,省略时默认步长为1。

range(start, stop, step)

py
<br />
for i in range(1, 6, 2)<br />
    print(i, end=' ')<br />

运行结果

1 3 5

可以将步长设置为一个负数,使循环变量有规律地减小。

例如下列代码,步长值为负1,循环变量 i 从3开始,每次循环减少1,执行程序,会打印出3、2、1

py
<br />
for i in range(3, 0, -1)<br />
    print(i)<br />

步长为负数时,开始值要大于结束值,否则这段代码不会被执行。

可变嵌套循环

range()函数的参数可以是变量。
range()函数第一个参数表示开始值,第二个参数表示结束值,第三个参数表示步长。
a.开始值可以是变量
b.结束值可以是变量

那年 • 今日
小王于2021-12-20 22:38发布在编程
没有伞的孩子,必须学会努力奔跑。

赞助 点赞 0

正在等待第一条评论

头像预览

发表评论

您的邮箱地址不会被公开, 必填项已用 * 标注

找回密码

请输入您的邮箱地址,我们将向您发送重置密码的链接。

您好,朋友!

请输入相关信息,以便我们提供更优质的服务!

欢迎回来!