数据结构相关模块(列表)

所有内容参照自 python cookbook

1.解压序列赋值给多个变量 一般来讲我们赋值变量是这样:

a = 1

python可以这样:

a,b = 1,2

或者这样:

e=[1,2,3,4]
a,b,c,d=e

当然 你想解压几层就解压几层,比如这样:

data = [ ‘ACME‘, 50, 91.1, (2012, 12, 21) ]
name, shares, price, (year, mon, day) = data

如果你只是想要其中的几个变量,这。。。。python没有给出特别的方式,你可以用一些不常用的变量名去占位。 比如:

data = [ ‘ACME‘, 50, 91.1, (2012, 12, 21) ]
_, shares, price, _ = data

虽然说是列表解析 ,但同样适用于字符串,文件对象,迭代器,生成器

s = ‘hello‘a,b,c,d,e = s

有时候迭代对象的元素会超过变量个数,那该怎么办 ,这时候就要用到星号表达式了

record = (‘Dave‘, ‘[email protected]‘, ‘773-555-1212‘, ‘847-555-1212‘)
name, email, *phone_numbers = record

解压出来的phone_numbers永远是列表,即使没有元素,当然,更常见的是把星号表达式做为参数 比如:

def add(*args):
    n=0
    for i in args:
        n+=i    return n

然后我们就可以传任意个参数给add函数了~

add(1,2,3)
add(5,1,2,6,7)

2.序列中出现次数最多的元素

collections.Counter类就是专门为这类问题设计的,并用一个most_common()方法直接给出答案

words = [‘look‘, ‘into‘, ‘my‘, ‘eyes‘, ‘look‘, ‘into‘, ‘my‘, ‘eyes‘,‘the‘, ‘eyes‘, ‘the‘, ‘eyes‘, ‘the‘, ‘eyes‘, ‘not‘, ‘around‘, ‘the‘,‘eyes‘, "don‘t", ‘look‘, ‘around‘, ‘the‘, ‘eyes‘, ‘look‘, ‘into‘,‘my‘, ‘eyes‘, "you‘re", ‘under‘]from collections import Counter
word_counts = Counter(words)
top_three = word_counts.most_common(3)
(print(top_three)# Outputs [(‘eyes‘, 8), (‘the‘, 5), (‘look‘, 4)]

在底层实现上,一个 Counter 对象就是一个字典,将元素映射到它出现的次数上。比如:

>>> word_counts[‘not‘]1

并且可以手动增加计数

word_counts[‘not‘]+=1

Counter实例可以进行数学运算操作

时间: 2024-11-03 14:14:42

数据结构相关模块(列表)的相关文章

数据结构相关模块(堆)

如果学过数据结构就知道 堆排序,python提供了一个堆队列的模块heapq能很容易实现堆排序 heapd 如果要获取一个列表中N个最大最小的元素,heapd提供了两个函数:nlargest()和nsmallest import heapqnums = [1, 8, 2, 23, 7, -4, 18, 23, 42, 37, 2] print(heapq.nlargest(3, nums)) # Prints [42, 37, 23]print(heapq.nsmallest(3, nums))

数据结构相关模块(字典)

1.多值映射 一般的字典都是一个键对应一个值.为了想要实现多值映射就需要一个容器,列表或者集合,比如: d = {'a' : [1, 2, 3],'b' : [4, 5]}e = {'a' : {1, 2, 3},'b' : {4, 5}} 如果要实现上面的,就必须先对键值进行初始化为列表或者集合: d={} d.setdefault('a', []).append(1) 如果我们用collections模块下的defaultdict来实现就简单好多 d = defaultdict(list)f

(转)织梦后台模块列表不显示的原因以及四种解决方法

最近,kdchxue在学习织梦的建站,可是遇到了这样的问题,织梦的后台模块列表没有办法显示.kdchxue在网上一搜,发现出现这样的原因的用户可不是少数,于是小编在网上冲浪了一般,结合自己的实际经验,给大家分析了织梦的后台模块列表无法显示的原因做了剖析,以及解决的方法! 虽然说织梦CMS是一款非常优秀的开源CMS程序,但在使用织梦DedeCMS的过程中,我们还是会遇到一些很恼火的事情,比如模块管理列表无法显示,无法对模块进行卸载,这个是非常影响心情的.造成织梦模块管理列表无法显示的原因,可能有很

IsapiModule或CgiModule必须在模块列表中

http://blog.csdn.net/jiangxuchen/article/details/8758847 IIS7中默认是已经加载了脚本映射处理.但今天装了个WIN7,装好IIS后却发现没有.于是手动去这安装,在添加html映射时提示:模块列表中必须要有IsapiModule或cgiModule Google了半天找不到原因.后来在找到了答案.方法很简单,在 控制面板 -> 程序和功能 -> 打开或关闭Windows功能(这几步可以简化为Win+R运行OptionalFeatures)

枚举PEB获取进程模块列表

枚举进程模块的方法有很多种,常见的有枚举PEB和内存搜索法,今天,先来看看实现起来最简单的枚举PEB实现获取进程模块列表. 首先,惯例是各种繁琐的结构体定义.需要包含 ntifs.h 和 WinDef.h, 此处不再列出,各位看官根据情况自行添加. [cpp] view plain copy print? typedef PPEB (__stdcall *PFNPsGetProcessPeb)(PEPROCESS pEProcess); typedef ULONG   PPS_POST_PROC

ansible 软件相关模块,剧本

软件相关模块 yum rpm和yum的区别 rpm:redhat package manager yum 可以解决依赖关系 yum 源配置 使用yum下载时需要先下载epel [epel] name=Extra Packages for Enterprise Linux 7 - $basearch #名字 baseurl=http://mirrors.aliyun.com/epel/7/$basearch #rpm源的地址,可以写http,https,ftp,Samba,file: failov

处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

开发web项目时需要安装IIS,在安装好IIS的Windows7本上发布asp.net网站时,web程序已经映射到了本地IIS上,但运行如下错误提示"处理程序"PageHandlerFactory-Integrated"在其模块列表中有一个错误模块"ManagedPipelineHandler"" 我要发布的的web项目开发工具及所用系统 ①开发工具:vs2010.数据库:sqlserver ②操作系统:windows7 ③IIS:IIS 7.5

HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” 原因:在安装Framework v4.0之后,再启用IIS,导致Framework没有完全安装 解决:1.先找到 aspnet_regiis.exe文件,先看看这个文件在什么位置, 2.开始->所有程序->附件->右键点击“命令提示符”->以管理员身份运行-&

asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”

开发web项目时需要安装IIS,在安装好IIS的Windows7本上发布asp.net网站时,web程序已经映射到了本地IIS上,但运行如下错误提示“处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”” 一,上述错误详情为 二.上述错误分析:  vs2010默认采用的是.NET 4.0框架,4.0框架是独立的CLR,和.NET 2.0的不同,如果想运行.NET 4.0框架的网站,需要用aspnet_r