【笔记3】python中的映射操作

本文探讨了如何使用映射(尤其是字典dict)替代条件查找以提升Python代码的运行效率。介绍了dict的items()方法以及通过列表实现类似映射的效果,并讨论了字典的不同表示形式,强调了在处理key时需要注意的数据类型问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

采用映射代替条件查找

映射(如dict等)的搜索速度远快于条件语句(如if等),采用映射替代条件查找可以提高代码效率,目前Python中只有一种标准映射类型,就是字典(dict),但是列表也可以做出这种效果,总结了两种方法。

1.dict

dic = {
    '1':'32',
    '2':'31',
    '3':'432',
    '4':'467',
    '5':['fa','faa'],
    '6':('f','fa','asdfa'),
    ('7','8','9'):'f'
}
test = '6'
print(dic.items()) 
for a,b in dic.items():
    if test in a:
        print(b)

items()方法用于返回字典dict的(key,value)元组对的列表
取出对应的结果:

  • dict_items([(1, ‘32’), (2, ‘31’), (3, ‘432’), (4, ‘467’), (5, [‘fa’, ‘faa’]), (6, (‘f’, ‘fa’, ‘asdfa’)), ((7, 8, 9), ‘f’)])
  • (‘f’,’fa’,’asdfa’)

2. list

listdic = [
    ['',['','']]
    ['fruit',['apple','orange','123']]
    ['',['']]
    ...
]
for i in range(9):
    type, name = listdic[i]

本质是高维列表,可以通过listdic[][]来访问,比如:

  • listdict[1] = [‘fruit’,[‘apple’,’orange’,’123’]]
  • listdict[1][0] = fruit
  • listdict[1][1] = [‘apple’,’orange’,’123’]
  • listdict[1][1][2] = 123
  • listdict[1][1][2][0] = 1

可以通过赋值,将对应的头尾取出来:

  • listdict[1] = [‘fruit’,[‘apple’,’orange’,’123’]]
  • type, name = listdic[1]
  • type = fruit
  • name = [‘apple’,’orange’,’123’]

ps 字典的不同表示


dic = {
    '1':'32',
    '2':'31',
    '3':'432'

}
dic1 = {
    1:'32',
    2:'31',
    3:'432'
}
dic2 = {
    1:2,
    2:3,
    3:4
}

注意key和value是否是字符串,比如迭代或判断的时候,不能直接用int:

if test in key # 是字符串判断,当key是数字不能直接用这种方法判断
for i in range(len(key)) # int在迭代要用索引,str\list\tuple可以直接迭代序列元素
int型的key可以直接取值,dic1[1],dic2[1]都有意义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值