前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【笔记3】python中的映射操作

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

作者头像
py3study
发布2020-01-07 16:25:40
5730
发布2020-01-07 16:25:40
举报
文章被收录于专栏:python3python3

采用映射代替条件查找

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

1.dict

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

代码语言:javascript
复制
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 字典的不同表示

代码语言:javascript
复制
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]都有意义

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-15 ,如有侵权请联系 cloudcommunity@tencent.com 删除

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 采用映射代替条件查找
    • 1.dict
      • 2. list
        • ps 字典的不同表示
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档