全文共394个字,1张图,预计阅读时间5分钟。

最近的工作中经常使用Python编写一些基本解决一些NLP的小问题,在自己的工作日记里面也记录了不少的python编程中常用的小"Trick",看到最近大家学习Python的劲头儿这么火辣,那就简单的贴出一些。该篇文章定位是"Just show me code"风格----即:少废话,直接Sublime里面写Python!

主要包含的内容:几种常用数据类型list--->str---->dict--->set的基本转换、常用的操作、文本预处理过程中的字符串的处理以及利用正则剔除正文中的URL信息等,都是自己写代码时比较高频的点儿!

懒得编辑格式了...有需求的人,随便看看就当学习啦!

  1# coding:utf-8  2# 1.实现浮点除法  3from __future__ import division  4# 2.解决处理文本数据格式报错  5import sys  6reload(sys)  7sys.setdefaultencoding("utf-8")  8from collections import OrderedDict  9from collections import Counter 10# 3.python中集中数据类型的转换:str--->list-->str--->list--->dict 11a="12345" 12a=list(a) 13print "-".join(list(a)) 14# 逆转列表 15a1=a[::-1] 16print a1 17# ['5', '4', '3', '2', '1'] 18print zip(a,a1) 19# [('1', '5'), ('2', '4'), ('3', '3'), ('4', '2'), ('5', '1')] 20# list--->string 21aa=",".join(["#".join(i) for i in zip(a,a1)]) 22print aa 23#1#5,2#4,3#3,4#2,5#1 24 25# 4.带索引的访问list的元素 26for index,value in enumerate(a): 27print index,value 28# list--->dict,列表的推导式访问+条件判断+类型转换 29a_index={v:i for i,v in enumerate(a) if int(v)%2==0} 30print a_index 31# {'2': 1, '4': 3} 32teams = ["Packers", "49ers", "Ravens", "Patriots"] 33print {key: value for value, key in enumerate(teams)} 34# {'49ers': 1, 'Ravens': 2, 'Patriots': 3, 'Packers': 0} 35 36#5.单个变量str—>unicode编码:u'%s' %(a) 37 38# collections是Python内建的一个集合模块,提供了许多有用的集合类。 39# 6.实现list的去重 40name=["kobe","tom","james","du ke","kobe","tom"] 41# 使用set当时去重会改变原始的顺序 42print list(set(name)) 43# ['kobe', 'duke', 'james', 'tom'] 44 45# 推荐使用OrderedDict这种方式来保留原始list中的次序[在排序中有用],在遍历的时候,他是保持了key插入字典的顺序 46print list(OrderedDict.fromkeys(name).keys()) 47# ['kobe', 'tom', 'james', 'duke'] 48 49# 7.统计词频,并返回Top K。[当需要处理的字典长度是固定的时候,也可以用于字典的排序] 50sort_all=Counter(name).most_common(5) 51print sort_all 52# [('kobe', 2), ('tom', 2), ('duke', 1), ('james', 1)] 53 54#8.使用defaultdict替换系统默认的创建字典,可以不需要我们在程序中,按key访问的时候,先手动的判断该key是否在字典中 55from collections import defaultdict 56# 定义,当访问一个key不存的时候的默认值 57dd = defaultdict(lambda: 'None') 58for i in name: 59if i not in dd: 60dd[i] = 1 61print dd["tom"] 62print dd["Tomes"] 63# 也可以使用默认的字典构建方式,然后再访问时候使用get的方式 64 65# 9.借助deque在list中实现双向的插入、删除: 66from collections import deque 67q = deque(['a', 'b', 'c']) 68# 尾部插入 69q.append('x') 70# 头部插入 71q.appendleft('y') 72print q 73# 当然,也可以借助默认的list 74q=['a', 'b', 'c'] 75q.insert(0,'y') 76# 删除指定位置的元素 77a=q.pop(1) 78print q 79print a 80 81#10.返回数组中的最大最小值 82num=[12,1,200,4,43,21] 83 84def getIndex(l,flag="max"): 85if flag.strip()=="max": 86return max(range(len(l)),key=l.__getitem__) 87elif flag.strip()=="min": 88return min(range(len(l)),key=l.__getitem__) 89else: 90return "Flag Error" 91 92print getIndex(num) 93print getIndex(num,flag="min8") 94 95# 11.对列表中的各个元素进行类别转换 96num=map(str,num) 97print num 98num=map(float,num) 99print num100# map结合lambda表达式还可以完成很多操作101m=[1,2,3,4]102print map(lambda x:x+1,m)103104# 12.字典格式的字符串---->字典[推荐使用ast的方式,而不是json(存在引号问题)/eval的方式(存在安全漏洞)]105import ast106user = '{"name" : "john", "gender" : "male", "age": 28}'107print ast.literal_eval(user)["name"]108109# 13.对字典排序110d = {'a': 2, 'A': 1, 1: 3, 'b': 2}111# 对你字典安装value进行排序,然后返回一个元组的集合112import operator113s = sorted(d.iteritems(), key=operator.itemgetter(1), reverse=True)114print s115# [(1, 3), ('a', 2), ('b', 2), ('A', 1)]116117#14.字符串的过滤。[文本的与处理中常用]118"""(1)判断一个unicode是否只包含英文字母"""119def is_alphabet(uchar):120if (uchar >= u'\u0041' and uchar<=u'\u005a') or (uchar >= u'\u0061' and uchar<=u'\u007a'):121return True122else:123return False124125# (2)借助re,只保留字符串中的中英文数字126import re127s="我是中国人(Chinese)!666^_^!!"128s=re.findall(u"[a-z]|[A-Z]|[\u4e00-\u9fa5]|[\\d]+",u'%s' %(s))129s= "".join(s).strip().replace(" ","")130print s131# 我是中国人Chinese666132133# (3)去除文本中的URL134def remove_urls (vTEXT):135vTEXT = re.sub(r'(https|http|httpt)?:\/\/(\w|\.|\/|\?|\=|\&|\%)*\b', ' ', vTEXT, flags=re.MULTILINE)136return(vTEXT)

真爽...这样写博客的速度就大大提高了....程序猿嘛,能上代码,就少絮叨啦!!!大家自己使用的过程中,有啥好的Python编程小技巧,欢迎交流啊!

原文链接:https://www.jianshu.com/p/3b3a6743cab7

查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:

www.leadai.org

请关注人工智能LeadAI公众号,查看更多专业文章

大家都在看

LSTM模型在问答系统中的应用

基于TensorFlow的神经网络解决用户流失概览问题

最全常见算法工程师面试题目整理(一)

最全常见算法工程师面试题目整理(二)

TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络

装饰器 | Python高级编程

今天不如来复习下Python基础

值得玩味儿的14个Python编程小技巧相关推荐

  1. 100天精通Python丨办公效率篇 —— 14、Python这些小技巧,让文件管理更加智能

    文章目录 1. 列出文件夹中的所有文件 2. 创建新文件夹 3. 复制文件 4. 删除文件夹 5. 使用 os.walk()方法查找文件 6. 使用 glob 模块查找文件 7. 批量重命名 文件/文 ...

  2. 最值得你收藏的30个Python常用小技巧

    1.原地交换两个数字 x, y =10, 20 print(x, y) y, x = x, y print(x, y) 10 20 20 10 2.链状比较操作符 n = 10 print(1 < ...

  3. 我平时总结的几个Python编程小技巧

    文章目录 1 查询numpy的array数组中某个数值的索引下标 2 查看当前Python解释器的版本 3 查看自己电脑上Python的安装目录 4 查看Python已安装模块 5 生成指定阶数的随机 ...

  4. 10个Python编程小技巧,让你的代码更上一层楼

    Python之禅 先找到终端运行python,然后输入import this,就可以得到下面的python彩蛋 The Zen of Python, by Tim PetersBeautiful is ...

  5. 几个 Python 编程小技巧

    Photo from Unsplash 1 编码问题 我们在爬取网站是,会经常抓取网页文本,但是打印文本会出现是一堆乱码.这是为什么呢?原因是 Python 中字符对象分为两种,一种是 Unicode ...

  6. python中读取txt文件、统计其中所有字母出现的频度_Python编程小技巧:如何统计序列中元素的出现频度...

    原标题:Python编程小技巧:如何统计序列中元素的出现频度 实际案例 某随机序列中,找到出现次数最高的三个元素,他们的出现次数是多少? 对某英文文章的单词进行词频统计,找到出现次数最高的10个单词, ...

  7. Cozmo+Python+ROS+AI会产生什么样的奇妙反应呢?(玩Cozmo机器人,学Python编程,掌握ROS和AI技术)

    Cozmo+Python+ROS+AI会产生什么样的奇妙反应呢? (玩Cozmo机器人,学Python编程,掌握ROS和AI技术) 跟随绿色激光点运动?如何实现? 在黄色边缘线的赛道上行驶?如何实现? ...

  8. python小游戏代码200行左右,python编程小游戏代码

    大家好,本文将围绕python小游戏代码200行左右展开说明,小游戏程序代码python是一个很多人都想弄明白的事情,想搞清楚python编程小游戏代码需要先了解以下几个事情. 1.python简单小 ...

  9. 25个实用编程小技巧

    点击上方"朱小厮的博客",选择"设为星标" 回复"1024"获取独家整理的学习资料 如果每个程序开发人员都只是周而复始地写代码,想必编程的工 ...

最新文章

  1. pb 修改数据窗口种指定字段位置_如何在PB数据窗口中修改数据---设置数据窗口的更新属性...
  2. vcsa清单配置和事件备份
  3. MySQL Innodb表导致死锁日志情况分析与归纳
  4. 基于PYNQ-Z2实现BNN硬件加速
  5. C++ 11 深度学习(十)多线程
  6. html标签object和embed,html标签object和embed的区别
  7. java 不执行构造函数_函数作为构造函数执行,但不作为函数执行
  8. TQ210——S5PV210启动过程
  9. 地图定点图表联动_拿下这套地图组件,快人一步做出炫酷报表!
  10. Pytorch学习笔记总结
  11. UITableView设置背景为透明时遇到的问题
  12. 解决哈希冲突的三种方法(拉链法、开放地址法、再散列法)
  13. 基于asp.net基层部队后勤管理系统的设计与实现
  14. 交接文档怎么写_怎么写一篇实用的需求说明文档
  15. GMSK调制解调(一)
  16. IDEA配置方法注释模板
  17. 教你怎么解决64位Windows版Redis狂占C盘的问题.
  18. 图片太大怎么压缩变小?图片如何压缩?
  19. 从EDN上看的文章 如何提高手机的待机时长
  20. Facebook语音识别野心曝光,测试Aloha,挑战苹果Siri

热门文章

  1. eigen库安装_Python-OpenCV 1. 图像处理库OpenCV安装
  2. mysql 数据库合并命令_mysql命令整合
  3. from rfc 2068 hypertext怎么解决_“饮水思源”英语怎么翻译
  4. git新建空白文件没有生效
  5. mybaits延迟加载原理_Nginx缓存原理及机制
  6. python获取他人的ip_Python获取指定网段正在使用的IP
  7. java invocationtarget,启动工程报java.lang.reflect.InvocationTargetException的解决详解
  8. visual studio 设计器不显示_设计模式 | Iterator设计模式
  9. network reactnative_从零学React Native之14 网络请求
  10. HTTP----HTTP2.0新特性