前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python熟练使用字典和了解元组与列表的区别

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

作者头像
楚客追梦
发布2022-11-11 19:38:48
1.3K0
发布2022-11-11 19:38:48
举报
文章被收录于专栏:网页杂谈

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

in 和 not in

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

py

代码语言:javascript
复制
pencil_box = ['pen', 'ruler', 'eraser']
a = 'ruler'
if a in pencil_box:
    print('Yes')

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

py

代码语言:javascript
复制
for x in ['A', 'B', 'C']:
    print(x, end='')

运行结果

ABC

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

py

代码语言:javascript
复制
seasons = ['春天', '夏天', '秋天', '冬天']
a = '早晨'
if a not in seasons:
    print(a, '不是季节')

运行结果

早晨 不是季节

print()多参数

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

print(参数1, 参数2)

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

py

代码语言:javascript
复制
print(23,4,56)

运行结果

23 4 56

py

代码语言:javascript
复制
a = 'xiaowangzi'
print(a, 7)

运行结果

xiaowangzi 7

字典

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

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

py

代码语言:javascript
复制
gender = {'xiangwangzi':男, 'xiaohua':女, 'kevin':男}
print(gender)

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

查找字典中的值

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

字典名称[键key]

py

代码语言:javascript
复制
trees = {'松树':120, '玉兰树':50, '槐树':70}
a = trees['玉兰树']
print(a)

运行结果

50

修改字典中的值

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

py

代码语言:javascript
复制
trees = {'松树':120, '玉兰树':50, '槐树':70}
trees['玉兰树'] = 60
print(trees)

运行结果

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

字典的遍历

可以使用for循环遍历字典

py

代码语言:javascript
复制
trees = {'松树':120, '玉兰树':50}
for i in trees
    print(i,trees[i])

运行结果

松树 120 玉兰树 50

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

py

代码语言:javascript
复制
trees = {'松树':120, '玉兰树':50}
if '玉兰树' in trees:
    print('YES')

字典和列表的对比

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

列表

py

代码语言:javascript
复制
name = ['kevin', 'xiaowangzi', 'wangzi']
print(name[1])

字典

py

代码语言:javascript
复制
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
print(age['xiaowangzi'])

keys()命令

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

字典名称.keys()

py

代码语言:javascript
复制
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
print(age.keys())

运行结果

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

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

py

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

运行结果

脐橙

values()命令

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

字典名称.values()

py

代码语言:javascript
复制
age = {'kevin':7, 'xiaowangzi':10, 'wangzi':23}
x = age.values()
print(x)

运行结果

[7,10,23]

新增键值

格式:

字典名称[key] = value

py

代码语言:javascript
复制
dict = {'飞机': 12}
dict['火车'] = 9
print(dict)

运行结果

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

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

py

代码语言:javascript
复制
dict = {'飞机': 12}
dict['飞机'] = 9
print(dict)

运行结果

{‘飞机’:9}

字典的综合运用

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

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

py

代码语言:javascript
复制
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

代码语言:javascript
复制
tup = ('幼年', '少年', '青年')

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

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

py

代码语言:javascript
复制
tup = (0, 1, 'Hello', 'World')

索引

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

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

py

代码语言:javascript
复制
data = ('春', '夏', '秋', '冬')
print(data[2])

运行结果

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

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

py

代码语言:javascript
复制
data = ('风', '雨', '雷', '电')
print(data[-2])

运行结果

切片

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

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

py

代码语言:javascript
复制
data = ('A', 'B', 'C', 'D', 'E')
print(data[1:4])

运行结果

‘B’, ‘C’, ‘E’

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

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

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

tuple()命令

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

py

代码语言:javascript
复制
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

代码语言:javascript
复制
info = ['G', 'O', 'O', 'D']
print(info[1])

运行结果

1

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

py

代码语言:javascript
复制
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

代码语言:javascript
复制
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

代码语言:javascript
复制
print(1)
print(2)

运行结果

1 2

py

代码语言:javascript
复制
print(1,end='')
print(2)

运行结果

12

py

代码语言:javascript
复制
print(1, end=' ')
print(2)

运行结果

1 2

循环的步长

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

range(start, stop, step)

py

代码语言:javascript
复制
for i in range(1, 6, 2)
    print(i, end=' ')

运行结果

1 3 5

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

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

py

代码语言:javascript
复制
for i in range(3, 0, -1)
    print(i)

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

可变嵌套循环

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • in 和 not in
  • print()多参数
  • 字典
    • 查找字典中的值
      • 修改字典中的值
        • 字典的遍历
          • 字典和列表的对比
            • keys()命令
              • values()命令
                • 新增键值
                  • 字典的综合运用
                  • 元组
                    • 创建
                      • 索引
                        • 切片
                          • tuple()命令
                            • index()命令
                            • 可变循环
                              • range()参数
                                • print()不换行
                                  • 循环的步长
                                    • 可变嵌套循环
                                    相关产品与服务
                                    容器服务
                                    腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档