专栏首页LEo的网络日志python技巧分享(三)

python技巧分享(三)

29 Jan 2018 python技巧分享(三)

这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获。

1 如何去掉list中重复元素

my_list = [3, 2, 1, 1, 2, 3]
print my_list
# [3, 2, 1, 1, 2, 3]
unique_list = list(set(my_list))
print unique_list
# [1, 2, 3]

或者

from collections import OrderedDict


my_list = [3, 2, 1, 1, 2, 3]
print my_list
# [3, 2, 1, 1, 2, 3]
unique_list = list(OrderedDict.fromkeys(my_list))
print unique_list
# [3, 2, 1]

前一种方式不会保留list的元素顺序,后一种方式会保留list的元素顺序。

2 如何读取dict中的值

  • 不推荐方式
url_dict = {
    'google': 'https://www.google.com/',
    'github': 'https://github.com/',
    'facebook': 'https://www.facebook.com/',
}


print url_dict['facebook']
print url_dict['google']
print url_dict['github']
# print url_dict['baidu']
# KeyError: 'baidu'

# https://www.facebook.com/
# https://www.google.com/
# https://github.com/
  • 推荐方式
url_dict = {
    'google': 'https://www.google.com/',
    'github': 'https://github.com/',
    'facebook': 'https://www.facebook.com/',
}

print url_dict.get('facebook', 'https://www.google.com/')
print url_dict.get('google', 'https://www.google.com/')
print url_dict.get('github', 'https://www.google.com/')
print url_dict.get('baidu', 'https://www.google.com/')

# https://www.facebook.com/
# https://www.google.com/
# https://github.com/
# https://www.google.com/

前一种方式读取一个不存在的key时,会导致KeyError,例如print url_dict[‘baidu’],因为字典中不存在baidu,所以会导致KeyError。后一种方式使用字典的get方法,如果key不存在,不会产生KeyError,如果给了默认值,会返回默认值,否则返回None。

3 如何排序字典

unordered_dict = {'c': 1, 'b': 2, 'a': 3}

print sorted(unordered_dict.items(), key=lambda e: e[1])
# [('c', 1), ('b', 2), ('a', 3)]

print sorted(unordered_dict.items(), key=lambda e: e[0])
# [('a', 3), ('b', 2), ('c', 1)]

print sorted(unordered_dict.items(), key=lambda e: e[1], reverse=True)
# [('a', 3), ('b', 2), ('c', 1)]

第一种方式是按字典的value升序排序,第二种方式是按字典的key升序排序,第三种方式是按字典的value降序排序,和第一种方式相反,因为指定了参数reverse为True。sorted函数功能挺强大,不止可以排序字典,任何iterable对象都可以排序,如果想深入了解请戳https://docs.python.org/2.7/howto/sorting.html#sortinghowto

LEo at 00:05

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python技巧分享(十一)

    songleo
  • python技巧分享(十一)

    songleo
  • python技巧分享(六)

    songleo
  • Mac Homebrew安装

    安装脚本 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/H...

    hankleo
  • 打包汇总资料--机器学习、Python和数学学习

    机器学习保罗万象,在学习这门技术时,最好可以有一些速查手册之类的东西在手边,它们列出了需要了解的关键点。Robbie Allen整理了20多个与机器学习相关的速...

    机器人网
  • 收藏 | 27个机器学习小抄(附学习资源)

    数据派THU
  • 最新最全面的ros book2 代码+自动驾驶仿真

    https://github.com/qboticslabs/ros_robotics_projects

    用户1908973
  • Red Team 工具集之辅助工具

    上图是一个 Red Team 攻击的生命周期,整个生命周期包括:信息收集、攻击尝试获得权限、持久性控制、权限提升、网络信息收集、横向移动、数据分析(在这个基础上...

    信安之路
  • 闲聊 - 回顾过去

    小时候,希望自己快点长大,长大了,却发现遗失了童年;单身时,开始羡慕恋人的甜蜜,恋爱时,却怀念单身时的自由。

    battcn
  • 云上部署Python3爬虫--以腾讯云+Ubuntu为例

    以鄙人在GitHub上的辣鸡代码为例, 其他Scrapy的项目操作类似, 本文同样适用于不使用云服务器的情形(排除掉前期准备部分即可).

    benny

扫码关注云+社区

领取腾讯云代金券