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

以上就是python使用建议技巧分享(三)的详细内容,更多关于python 建议与技巧的资料请关注我们其它相关文章!

(0)

相关推荐

  • python使用建议与技巧分享(一)

    这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获. 1 如何创建指定长度且有特定值的list 不推荐方式 list1 = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] print list1 # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 推荐方式 list1 = [0] * 10 print list1 # [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] 其实,前一种方式一看就不符合DRY(Don't Rep

  • Python 代码调试技巧示例代码

    Debug 对于任何开发人员都是一项非常重要的技能,它能够帮助我们准确的定位错误,发现程序中的 bug.python 提供了一系列 debug 的工具和包,可供我们选择.本文将主要阐述如何利用 python debug 相关工具进行 debug. 使用 pdb 进行调试 pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点.单步调试.进入函数调试.查看当前代码.查看栈片段.动态改变变量的值等.pdb 提供了一些常用的调试命令,详情见表

  • 常用的10个Python实用小技巧

    大家好,都说追女孩方法大于态度,学Python也是,今天就给大家分享的是我在用Python编写程序时常用的一些小技巧. 1.多次打印同一个字符 在Python中,不用特地写一个函数来重复打印同一个字符,直接使用Print就可以 tem = 'I Love Python ' print(tem * 3) I Love Python I Love Python I Love Python 2.在函数内部使用生成器 在写Python程序时,我们可以在函数内部直接使用生成器,这样可以使代码更简洁. su

  • 40个你可能不知道的Python技巧附代码

    1.拆箱 >>> a, b, c = 1, 2, 3 >>> a, b, c (1, 2, 3) >>> a, b, c = [1, 2, 3] >>> a, b, c (1, 2, 3) >>> a, b, c = (2 * i + 1 for i in range(3)) >>> a, b, c (1, 3, 5) >>> a, (b, c), d = [1, (2, 3),

  • python使用建议与技巧分享(二)

    这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获. 1 如何在if语句中检测多个条件 不推荐方式 flag1 = 1 flag2 = 0 flag3 = 0 if flag1 == 1 or flag2 == 1 or flag3 == 1: print 'ok' 推荐方式 flag1 = 1 flag2 = 0 flag3 = 0 if 1 in (flag1, flag2, flag3): print 'ok' 可以看到,前一种方式重复代码太多,不推荐.

  • python之array赋值技巧分享

    首先上一段程序: import numpy as np list_a = list(range(10)) print("list_a: {}".format(list_a)) array_a = np.array(list_a) print("array_a: {}".format(array_a)) list_b = [True,False,True,True,False,False,True,False,True,False] print("list_

  • 适合Python初学者的一些编程技巧

    这篇文章主要介绍了给Python初学者的一些编程技巧,皆是基于基础的一些编程习惯建议,需要的朋友可以参考下 交换变量 x = 6 y = 5 x, y = y, x print x >>> 5 print y >>> 6 if 语句在行内 print "Hello" if True else "World" >>> Hello 连接 下面的最后一种方式在绑定两个不同类型的对象时显得很co nfc = ["

  • python 19个值得学习的编程技巧

    Python最大的优点之一就是语法简洁,好的代码就像伪代码一样,干净.整洁.一目了然.要写出 Pythonic(优雅的.地道的.整洁的)代码,需要多看多学大牛们写的代码,github 上有很多非常优秀的源代码值得阅读,比如:requests.flask.tornado,下面列举一些常见的Pythonic写法. 0. 程序必须先让人读懂,然后才能让计算机执行. "Programs must be written for people to read, and only incidentally f

  • 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,

  • Python 高效编程技巧分享

    一.根据条件在序列中筛选数据 假设有一个数字列表 data, 过滤列表中的负数 data = [1, 2, 3, 4, -5] # 使用列表推导式 result = [i for i in data if i >= 0] # 使用 fliter 过滤函数 result = filter(lambda x: x >= 0, data) 学生的数学分数以字典形式存储,筛选其中分数大于 80 分的同学 from random import randint d = {x: randint(50, 10

  • python语言使用技巧分享

    一 在写之前 最好指定python的路径: #!/usr/bin/python python 在linux中需要添加编码方式:以免出现中文乱码 # -*- coding: UTF-8 –*- 二 在各类语言中,python应该是最会利用识缩进的语言 ,他的for语句即使有多行也不需要想java,C++.c一样使用{} ,可以像js.swift一样同换行符代表一句话,而不是使用: 号.有学过语言背景的同学请注意: 在python看来: 如果改变了缩进的方式,例如在第二个for上缩进,会导致错误:

  • Python 并行加速技巧分享

    目录 1 前言 2 使用joblib进行并行计算 2.1 使用Parallel与delayed进行并行加速 1 前言 我们在日常使用Python进行各种数据计算处理任务时,若想要获得明显的计算加速效果,最简单明了的方式就是想办法将默认运行在单个进程上的任务,扩展到使用多进程或多线程的方式执行. 而对于我们这些从事数据分析工作的人员而言,以最简单的方式实现等价的加速运算的效果尤为重要,从而避免将时间过多花费在编写程序上. 而今天我就来带大家学习如何利用joblib这个非常简单易用的库中的相关功能,

  • python 使用建议与技巧分享(四)

    这是一个系列文章,主要分享python的使用建议和技巧,每次分享3点,希望你能有所收获. 1 如何打印更易读的类 不推荐方式 class Point(object): def __init__(self, x, y): self.x = x self.y = y p = Point(3, 4) print p # <__main__.Point object at 0x0000000001E1B9E8> 推荐方式 class Point(object): def __init__(self,

  • Python数据处理的三个实用技巧分享

    目录 1 Pandas 移除某列 2 统计标题单词数 3 Genre 频次统计 我使用的 Pandas 版本如下,顺便也导入 Pandas 库. >>> import pandas as pd >>> pd.__version__ '0.25.1' 在开始前先确保解释器和数据集在同一目录下: >>> import os >>> os.chdir('D://source/dataset') # 这是我的数据集所在目录 >>&

  • Python中隐藏的五种实用技巧分享

    目录 1. ... 对象 2.解压迭代对象 3.展开的艺术 4.下划线 _ 变量 5.多种用途的else 循环 异常处理 1. ... 对象 没错,你没看错,就是 "..." 在Python中 ... 代表着一个名为 Ellipsis 的对象.根据官方说明,它是一个特殊值,通常可以作为空函数的占位符,或是用于Numpy中的切片操作. 如: def my_awesome_function():     ... 等同于: def my_awesome_function():     Ell

  • 使用python将大量数据导出到Excel中的小技巧分享

    (1) 问题描述:为了更好地展示数据,Excel格式的数据文件往往比文本文件更具有优势,但是具体到python中,该如何导出数据到Excel呢?如果碰到需要导出大量数据又该如何操作呢? 本文主要解决以上两个问题. (2)具体步骤如下: 1.第一步,安装openpyxl, 使用pip install openpyxl即可,但是在windows下安装的是2.2.6版本,但是centos自动安装的是4.1版本,(多谢海哥的提醒). 写的代码在windows下运行没问题,但centos上却报错了,说是e

随机推荐