自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 收藏
  • 关注

翻译 1.12.在序列中查找出现次数最多的元素

解决方法collections.Counter类就是为此设计的,它甚至提供了most_common()方法来解决你的问题。举个例子,查找words中的出现次数最多的词:words = [ 'look', 'into', 'my', 'eyes', 'look', 'into', 'my', 'eyes', 'the', 'eyes', 'the', 'eyes'

2014-09-29 20:39:51 644

翻译 1.13.使用Key对字典排序

问题如何对字典中的一个或者多个值排序?解决方法operator.itemgetter()方法。假如有以下数据:rows = [ {'fname': 'Brian', 'lname': 'Jones', 'uid': 1003}, {'fname': 'David', 'lname': 'Beazley', 'uid': 1002},

2014-09-29 20:38:49 1269

翻译 1.10.移除重复序列同时维持排序

问题如何移除重复数据的同时,保持既有排序?解决方法如果序列中的值是哈希过的,这个问题可同set和generator轻易解决,例如:def dedupe(items): seen = set() for item in items: if item not in seen: yield item

2014-09-29 20:38:36 597

翻译 1.9.两个字典中相同的Key-Value查询

问题有两个字典,你想知道它们那些key-value是相同的。解决方法比如有以下两个字典:a = { 'x' : 1, 'y' : 2, 'z' : 3}b = { 'w' : 10, 'x' : 11, 'y' : 2}可使用keys()或者items()方法:# Find keys in common

2014-09-29 20:38:01 5476

翻译 1.11.命名一个slice

问题你的程序变成了没法阅读的脏乱不堪的硬编码切片片段,而你想梳理干净它。解决方法假设你有些从记录的字符串中读取特定field数据的代码(比如,flat文件或者类似结构的):###### 0123456789012345678901234567890123456789012345678901234567890'record = '...............

2014-09-29 20:37:37 441

翻译 1.8.使用字典计算

问题你想在字典中执行大量计算(例如,最小值,最大值,排序,etc)解决方法假如有如下股票价格的字典:prices = { 'ACME': 45.23, 'AAPL': 612.78, 'IBM': 205.55, 'HPQ': 37.20, 'FB': 10.75}为了执行有用的计算,通常使用zip()方法转换字典中的k

2014-09-29 20:37:27 669

翻译 1.7.保持字典排序

问题在访问或者序列化字典时控制排序。解决方法使用collections模块中的OrderedDict,它保持字典插入时的排序:from collections import OrderedDictd = OrderedDict()d['foo'] = 1d['bar'] = 2d['spam'] = 3d['grok'] = 4# Outputs "f

2014-09-29 20:36:13 460

翻译 1.6.在字典中映射Key到多个Value

问题multidict的实现?(映射Key到多个Value)解决方法字典是单个Key到Value的映射。如果想多Key多Value,那么可以把多个Value存放到容器中(list,set),比如:d = { 'a' : [1, 2, 3], 'b' : [4, 5]}e = { 'a' : {1, 2, 3}, 'b' : {4, 5}

2014-09-29 20:35:38 737

翻译 1.5.实现一个优先队列

问题如何实现一个按给定值优先排序,并按优先值返回的queue?解决方法以下代码使用heapq模块实现了这样的queue:import heapqclass PriorityQueue: def __init__(self): self._queue = [] self._index = 0 def push(se

2014-09-29 20:35:03 487

翻译 1.4.查找最大或最小的N个元素

问题如何在一个集合中查找最大或者最小的N个元素?解决方法heapq模块有两个函数——nlargest()和nsmallest(),例如:import heapqnums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2]print(heapq.nlargest(3, nums)) # Prints [42, 37, 23]p

2014-09-29 20:34:30 593

翻译 1.3.保留最后N个元素

问题在某些迭代或者其他一些执行操作的时候,如何保留限制个数的历史记录?解决方法使用collection.deque是解决保留限制历史记录个数的完美解决方案,比如,下面这段代码就是查找一个简单文本中特定的字符串并保留前N句的示例:from collections import dequedef search(lines, pattern, history=5):

2014-09-29 20:33:56 643

翻译 1.2.从任意长度的迭代中解压元素

问题想从iterable中解压N个元素,但iterable元素可能多于N个,会导致“to many values to unpack”的异常。解决方法Python的表达式(star expression)可被用来解决这个问题。举例,假如你课程并决定在学期结束时放弃最高和最低分,只取剩下的平均分,如果只有4门课程,你可以简单的加压所有的4门,但是如果有24门课程呢?表达式可以

2014-09-29 20:33:04 641

翻译 1.1 解压序列到多个变量

1.1 解压序列到多个变量问题你有一个有N个元素的元组或序列,但你想把这N个元素解压到N个变量中。解决方法任何序列(或迭代器)都可以使用一个简单的赋值操作解压到多个变量中,唯一要求是变量的个数和结构和序列一致,比如:>>> p = (4, 5)>>> x, y = p>>> x4>>> y5>>>>>> data = [ 'ACME', 50

2014-09-29 20:30:15 403

转载 Ubuntu apt-get代理设置

Internet国家的墙可以理解,但是公司网络封锁就让人无法忍受了,Ubuntu软件更新都不成,好在现在知道可以使用163源更新了,但是 系统network的代理配置不能应用在按apt-get,因为用户名和密码无法获取,如下操作即可:$ sudo vi /etc/apt/apt.confAcquire::http::proxy "http://usrname:pas

2014-07-01 13:00:19 472

原创 Subline Text在Ubuntu输入中文解决方案二

但是以上解决方案并不完美,因为修改了sublime_text.desktop的Exec,导致系统在处理可执行文件时,与其他/etc/目录下存储的不同,而导致一些功能不好用,比如无法右键打开当前目录,无法浏览“Package Browser”,还得进一步修改其他的关联值。还有一种方法是Sublime官方给出的,那就是安装插件“InputHelper”,安装成功后,使用“Ctrl+Shif

2014-07-01 12:57:35 553

转载 ubuntu文件浏览器右键添加“在终端中打开”

sudo apt-get install nautilus-open-terminal

2014-05-24 06:03:41 486

转载 ubuntu下sublime text 3无法输入中文

/*sublime-imfix.cUse LD_PRELOAD to interpose some function to fix sublime input method support for linux.By Cjacker Huang gcc -shared -o libsublime-imfix.so sublime-imfix.c `

2014-05-24 05:58:46 827

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除