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

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

in 和 not in

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

py

pencil_box = ['pen', 'ruler', 'eraser']
a = 'ruler'
if a in pencil_box:
    print('Yes')

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

py

for x in ['A', 'B', 'C']:
    print(x, end='')

运行结果

ABC

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

py

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

运行结果

早晨 不是季节

print()多参数

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

print(参数1, 参数2)

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

py

print(23,4,56)

运行结果

23 4 56

py

a = 'xiaowangzi'
print(a, 7)

运行结果

xiaowangzi 7

字典

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

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

py

gender = {'xiangwangzi':男, 'xiaohua':女, 'kevin':男}
print(gender)

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

查找字典中的值

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

字典名称[键key]

py

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

运行结果

50

修改字典中的值

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

py

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

运行结果

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

字典的遍历

可以使用for循环遍历字典

py

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

运行结果

松树 120
玉兰树 50

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

py

trees = {'松树':120, '玉兰树':50}
if '玉兰树' in trees:
    print('YES')

字典和列表的对比

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

列表

py

name = ['kevin', 'xiaowangzi', 'wangzi']
print(name[1])

字典

py

age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
print(age['xiaowangzi'])

keys()命令

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

字典名称.keys()

py

age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
print(age.keys())

运行结果

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

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

py

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

运行结果

脐橙

values()命令

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

字典名称.values()

py

age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
x = age.values()
print(x)

运行结果

[7,10,23]

新增键值

格式:

字典名称[key] = value

py

dict = {'飞机': 12}
dict['火车'] = 9
print(dict)

运行结果

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

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

py

dict = {'飞机': 12}
dict['飞机'] = 9
print(dict)

运行结果

{‘飞机’:9}

字典的综合运用

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

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

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

元组

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

创建

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

py

tup = ('幼年', '少年', '青年')

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

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

py

tup = (0, 1, 'Hello', 'World')

索引

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

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

py

data = ('春', '夏', '秋', '冬')
print(data[2])

运行结果

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

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

py

data = ('风', '雨', '雷', '电')
print(data[-2])

运行结果

切片

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

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

py

data = ('A', 'B', 'C', 'D', 'E')
print(data[1:4])

运行结果

‘B’, ‘C’, ‘E’

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

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

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

tuple()命令

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

py

height = ('12', '10', '8', '11', '5', '3')
height.remove(11)
tup = tuple(height)
print(tup)

运行结果

(12, 10, 8, 5, 3)

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

index()命令

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

列表名.index()

py

info = ['G', 'O', 'O', 'D']
print(info[1])

运行结果

1

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

py

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

运行结果

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

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

可变循环

range()参数

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

range(start, stop)

py

for i in range(1, 4)
    print(i)

运行结果

1
2
3

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

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

print()不换行

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

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

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

py

print(1)
print(2)

运行结果

1
2

py

print(1,end='')
print(2)

运行结果

12

py

print(1, end=' ')
print(2)

运行结果

1 2

循环的步长

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

range(start, stop, step)

py

for i in range(1, 6, 2)
    print(i, end=' ')

运行结果

1 3 5

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

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

py

for i in range(3, 0, -1)
    print(i)

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

可变嵌套循环

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

写于2021年12月20日
没有伞的孩子,必须学会努力奔跑。

赞助 点赞 1 unread messages

暂无评论,抢沙发?

发表回复

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