1、列表,字典,集合解析

from random import randint
#列表解析,选出大于0的元素
data=[randint(-10,10)for i in range(10)]
result1=filter(lambda x:x>=0 ,data)
result2=[x for x in data if x>=0]#最快
for x in data:#最慢
if x>=0:
print(x)
#字典解析,value大于80
d = {x:randint(60,100) for x in (1,20)}#构造字典
result3={k:v for k,v in d.items() if v>80}
print(result3)
#集合解析
#集合中科院被3整除的元素
s=set(data) 
result4={x for x in s if x%3 ==0}

  2、为元组命名

#可命名元组
from collections import namedtuple
#第一种方式
student = ('BOB',16,'male','810833355@qq.com')
name,age,sex,email = range(4)
print(student[name])

  

from collections import namedtuple
#第一种方式
# student = ('BOB',16,'male','810833355@qq.com')
# name,age,sex,email = range(4)
# print(student[name]) student= namedtuple('student',['name','age','sex','email'])
s=student('jim',16,'male','810823255@qq.com')
print(s,'==========',s.name)

  执行结果如图

3、统计序列中元素出现频度

from random import randint
data = [randint(1,20) for x in range(50)]#随机序列,计算每个元素出现的次数
c=dict.fromkeys(data,0)#0是初始值,将;将列表中的元素作为字典的key
for x in data:
c[x] +=1

  

from random import randint
data = [randint(1,20) for x in range(50)]#随机序列,计算每个元素出现的次数
from collections import Counter c2 = Counter(data)
c2.most_common(3)#哪三个元素出现最多
print(c2,c2.most_common(3))

  结果如图

词频统计

import re
from collections import Counter
txt = open('a.txt').read()
c1=re.split('\w',txt)#对非字母进行分割,然后传进Counter
result = Counter(c1)#将列表传进去
res = result.most_common(3)#出现次数最多的三个单词

  4、根据字典中值的大小,对字典中的项进行排序

from random import randint

d1={x: randint(60,100) for x in 'abcxyz'}#六个人分别叫abcxyz
#1
print(sorted(zip(d1.values(),d1.keys())))#元组组成的列表,比较元组的第一个元素 #2
print(sorted(d1.items(),key=lambda x :x[1]))

  结果如图

5、如何快速找到多个字典里面的公共键

from random import randint,sample
#sample是取样
#1
sam=sample('abcdef',randint(3,6))#随机选取'abcdef'三到6个样本
s1 ={x:randint(1,4) for x in sample('abcdef',randint(3,6))}
s2={x:randint(1,4) for x in sample('abcdef',randint(3,6))}
s3={x:randint(1,4) for x in sample('abcdef',randint(3,6))}
print(s1,s2,s3) for k in s1:
if k in s2 and k in s3:
print(k)

  结果如图

第二种方法

print(s1.keys() & s2.keys() & s3.keys())#python2是viewkeys,这里取交集
from functools import reduce print(reduce(lambda a,b:a & b,map(dict.keys,[s1,s2,s3])))#如果键多可以这样,python2是viewkeys

  6,、如何让字典有序

from collections import  OrderedDict

d= OrderedDict()

d['jib']=(1,35)
d['bob']=(2,5)
d['bbc']=(3,5)
for i in d:
print(i)

  结果如图

7、拆分含有多个分隔符的字符串

s='ab;cd|efgh|hi,jkl|topq;rst,vww\atex'
t=[]
res = s.split(';')
map(lambda x: t.extend(x.split('|')),res)
print(t)

  第二种方法

import re
s='ab;cd|efgh|hi,jkl|topq;rst,vww\atex' print(re.split(r'[,;\|]',s))

  结果如图

8、判断字符串开头

9、正则调整文本格式

import re
#1
l=['2016-05-23','2016-06-11','2016-07-12']
l1='2016-05-23' print(re.sub('(\d{4})-(\d{2})-(\d{2})',r'\2/\3/\1',l1))

  结果如图

第二种方法

import re
#1
l=['2016-05-23','2016-06-11','2016-07-12']
l1='2016-05-23' print(re.sub('(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})',r'\g<month>/\g<day>/\g<year>',l1))

  10、字符串拼接

第一种方法

不过这种方法浪费内存,下面是第二种方法,用join

11、调节字符串居中,左右对齐

s= 'abc'

print(s.ljust(20))
print(s.ljust(20,'+'))
print(s.center(20,'+'))

  结果如图

ling另外一种方法如图

12、去掉不需要的字符串

去除空格

去除指定字符

s= 'abc__++++'

print(s.strip('_+'))

s1 = 'abc:1224'
print(s1[:3]+s1[4:])

  结果如图

s= '\tadhi\sfds\sdfds\sdfds\gf\gs\ggg'
print(re.sub('[\t\g\f\d]','',s))

  

python进阶训练的更多相关文章

  1. Python高效编程技巧实战 实战编程+面试典型问题 中高阶程序员过渡

    下载链接:https://www.yinxiangit.com/603.html 目录:   如果你想用python从事多个领域的开发工作,且有一些python基础, 想进一步提高python应用能力 ...

  2. Python中的多进程与多线程(一)

    一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...

  3. Python高手之路【六】python基础之字符串格式化

    Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...

  4. Python 小而美的函数

    python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况   any any(iterable) ...

  5. JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议

    软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...

  6. 可爱的豆子——使用Beans思想让Python代码更易维护

    title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...

  7. 使用Python保存屏幕截图(不使用PIL)

    起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...

  8. Python编码记录

    字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...

  9. Apache执行Python脚本

    由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...

随机推荐

  1. 轻量ORM-SqlRepoEx (五) 存储过程操作

    .Net平台下兼容.NET Standard 2.0,一个实现以Lambda表达式转转换标准SQL语句,使用强类型操作数据的轻量级ORM工具,在减少魔法字串同时,通过灵活的Lambda表达式组合,实现 ...

  2. xcode7--iOS开发---将app打包发布至app store

    时隔3个月再次接触应用打包,又是一顿折腾 说说这次的感受吧: 变得是打包时间减少到4小时(其中大部分时间还是xcode7或者是iOS9的原因),不变的是还是一如既往的坑!! 好了,废话不多说,下面讲讲 ...

  3. c# 分布式系统开发

    开篇吹牛,吹大牛了各位. 接连几篇博文,已经将了我们系统常用的东西,主要针对服务端,非桌面系统. 聊了这么久了,最后将这所有内容打包,完成一个系统.可能称为组件才合适,因为我没有提供启动程序. 每一个 ...

  4. 20181009noip HZ EZ两校联考sum(莫队,组合数学)

    题面戳这里 思路: noip考莫队???!!! 考场上死活没往这方面想啊!!!数据分治忘写endl50pts滚粗了 这里每个询问都有n,m两个参数 我们可以把它看做常规莫队中的l和r 然后利用组合数的 ...

  5. 大专生自学c++到找到工作的前前后后

    先做个自我介绍,我13年考上一所很烂专科民办的学校,学的是生物专业,具体的学校名称我就不说出来献丑了.13年我就辍学了,我在那样的学校,一年学费要1万多,但是根本没有人学习,我实在看不到希望,我就退学 ...

  6. linux命令之磁盘和文件系统操作

    1.   fdisk:磁盘分区命令 语法:fdisk [选项][参数] 命令说明:fdisk是linux系统里常用的一种磁盘管理工具,可以创建和管理系统分区 常用命令选项: -l:列出指定的并退出,没 ...

  7. less学习一

    Less 是一门 CSS 预处理语言,它扩展了 CSS 语言,增加了变量.Mixin.函数等特性,使 CSS 更易维护和扩展. Less 可以运行在 Node 或浏览器端. less文件只有被编译后才 ...

  8. 用C#实现WEB代理服务器

    用C#实现Web代理服务器 代理服务程序是一种广泛使用的网络应用程序.代理程序的种类非常多,根据协议不同可以分成HTTP代理服务程序.FTP代理服务程序等,而运行代理服务程序的服务器也就相应称为HTT ...

  9. doT.js使用介绍

    doT.js特点是快,小,无依赖其他插件,压缩版仅有4K大小. doT.js详细使用介绍 使用方法: 1 2 3 4 5 6 7 {{ }} 模板   开始标记  结束标记 {{= }} 赋值 {{~ ...

  10. Hadoop(9)-HDFS的NameNode和SecondaryNameNode详解

    1.NN和2NN工作机制 首先,我们做个假设,如果存储在NameNode节点的磁盘中,因为经常需要进行随机访问,还有响应客户请求,必然是效率过低.因此,元数据需要存放在内存中.但如果只存在内存中,一旦 ...