python字典(数组)操作排序之学习笔记

字典是最与php的数组相似的序列结构。python的列表只能是以索引数字开头并且顺序递增的序列。字典则可以是以字母为key的序列。

元组一般用圆括号来表示,如(1,2,3)
列表一般用方括号来表示,如[1,2,3]
而字典(dict)则用大括号来表示,如{‘a’:1,’b':2,’c':3}

与php不同,php的key,value是用key=>value来表示,python而是用冒号“:”来分隔。

字典可以使用大括号书写键和值或使用dict函数来创建。
dict函数可以指定两个元组或列表来对应创建字典。如:

items = [('name','gumby'),('age','42')]
d = dict(items)

与列表的区别:

k in d(d为字典),查找的是键,而非value,表达式 v in l(l为列表)则用来查找值,而不是索引。

一些字典方法:

clear 清除字典。“原地操作”,不会返回值,类似于列表的sort方法
copy方法返回一个相同键值对儿的新字典。浅复制。因为值本身就是相同的,而不是副本。
在副本中替换值的时候,原始字典不受影响。但是如果修改了某个值,原始字典也会改变。避免这个问题的一种方法就是使用深度复制(deep copy)。

from copy import deepcopy
deepcopy(d)

d.fromkes方法使用给定的值创建新字典。每个键默认对应的是None
get方法获取一个不存在的键时,不会报错,会返回None
has_key方法相法于表达式k in d
items方法将所有的字母项以列表的方式返回。这些列表中的每一项都来自于(键,值)。但是项在返回时没有特殊的顺序。
iteritmes的方法大致相同,但是会返回一个迭代器对象而不是列表。在很多情况下iteritems效率更高。迭代器,相当于decode json之后的对象,而非数组、
keys方法将字典中的键以列表的形式返回。而iterkeys则返回针对键的迭代器。
pop弹出给定键的值。popitem会弹出最后一个元素(实际上是随机项),但如果想一个接一个地移除并处理字典,popitem效率就会高很多,因为不必先获取字典的键值列表。

values和itervalues方法以列表或迭代器的形式返回字典中的值,返回值的列表可以包含重复项。

看些python 字典操作实例

假设字典为dics = {0:'a', 1:'b', 'c':3}

1.从字典中取值,当键不存在时不想处理异常

[方法]  dics.get('key', 'not found')

[例如]

           

[解释] 当键'key'不存在是,打印'not found'(即想要处理的信息),当存在是输出键值。

【其他解决方案一】

if key in dics:
    print dics[key]
else:
    print 'not found!!'

【其他解决方案二】

try:
     print dics[key]
except KeyError:
     print 'not found'

例子:

          

2.从字典中取值,若找到则删除;当键不存在时不想处理异常

[方法]  dics.pop('key', 'not found')

[例如]

          

[解释] 当键'key'不存在是,打印'not found'(即想要处理的信息),当存在是输出键值,并且去除该健。

3.给字典添加一个条目。如果不存在,就指定特定的值;若存在,就算了。

[方法] dic.setdefault(key, default)

[例如]

      

python 字典排序

 

dic = {'a':3 , 'b':2 , 'c': 1}

   

注意

排序之后原字典没有变,顺序依旧

    

两个函数

1.lambda

功能: 创建匿名函数

区别: 和def函数定义,以下两点区别

  • lambda会创建一个函数对象,但不会把这个函数对象赋给一个标识符;而def则会把函数对象赋值给一个变量
  • lambda它只是一个表达式,而def则是一个语句

案例:

   

2.iteritems()

功能: iteritems()以迭代器对象返回字典键值对

区别: 和item相比:items以列表形式返回字典键值对

案例:

   

注释: 在函数sorted(dic.iteritems(), key = lambda asd:asd[1])中,第一个参数传给第二个参数“键-键值”,第二个参数取出其中的键([0])或键值(1])

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数组
, 对象
, 函数
, 排序
, 表达式
括号
,以便于您获取更多的相关知识。

时间: 2024-09-17 13:56:28

python字典(数组)操作排序之学习笔记的相关文章

Python中Random和Math模块学习笔记

  这篇文章主要介绍了Python中Random和Math模块学习笔记,本文讲解了math模块的数学常量.常用简单函数.三角函数等,讲解了random模块的常用函数.随机挑选和排序等内容,需要的朋友可以参考下 由于最近经常使用到Python中random,math和time``datetime模块, 所以决定花时间系统的学习一下 1. math模块 math中的函数不可以用于太过复杂的数的运算, 如果需要复杂数的运行最好使用cmath模块中同名函数, 如果想要更加高级的数学功能,可以考虑选择标准

python图像数组操作与灰度变换

Python图像数组操作与灰度变换 使用python以及numpy通过直接操作图像数组完成一系列基本的图像处理 numpy简介: NumPy是一个非常有名的 Python 科学计算工具包,其中包含了大量有用的工具,比如数组对象(用来表示向量.矩阵.图像等)以及线性代数函数. 数组对象可以实现数组中重要的操作,比如矩阵乘积.转置.解方程系统.向量乘积和归一化.这为图像变形.对变化进行建模.图像分类.图像聚类等提供了基础. 在上一篇python基本图像操作中,当载入图像时,通过调用 array()

PHP操作XML文件学习笔记

原文:PHP操作XML文件学习笔记 XML文件属于标签语言,可以通过自定义标签存储数据,其主要作用也是作为存储数据. 对于XML的操作包括遍历,生成,修改,删除等其他类似的操作.PHP对于XML的操作方式很多,这次学习的是通过DOMDocument进行操作,其他的操作方法可以参考 http://www.oschina.net/code/snippet_110138_4727 1.对XML文件的遍历 通过DOMDocument对于XML文件的操作的方法:首先要实例化一个DOMDocument类的对

PHP图形操作之Jpgraph学习笔记_php技巧

本文实例讲述了PHP图形操作之Jpgraph学习笔记.分享给大家供大家参考,具体如下: 一.Jpgraph安装配置 下载Jpgraph安装包 解压后放置磁盘中,(最好是放在和网页一起) 修改php.ini文件: 1.内存  memory_limit=X,至少为32M 2.执行时间  max_execution_time=X,对于复杂的图片加载时需要较多的时间,根据图片的复杂度做相应的修改 3.缓存  output_buffering  注释掉缓存,便于调试 二.使用Jpgraph创建图形的基本步

Python数据库ORM工具sqlalchemy的学习笔记

SQLAlchemy是python的一个数据库ORM工具,提供了强大的对象模型间的转换,可以满足绝大多数数据库操作的需求,并且支持多种数据库引擎(sqlite,mysql,postgres, mongodb等),在这里记录基本用法和学习笔记. 一.安装 通过pip安装 $ pip install SQLAlchemy  二.使用 首先是连接到数据库,SQLALchemy支持多个数据库引擎,不同的数据库引擎连接字符串不一样,常用的有 mysql://username:password@hostna

Python 字典(Dictionary)操作详解_python

Python字典是另一种可变容器模型,且可存储任意类型对象,如字符串.数字.元组等其他容器模型.一.创建字典字典由键和对应值成对组成.字典也被称作关联数组或哈希表.基本语法如下: 复制代码 代码如下: dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'} 也可如此创建字典: 复制代码 代码如下: dict1 = { 'abc': 456 };dict2 = { 'abc': 123, 98.6: 37 }; 注意:每个键与值用冒号隔开

python字典多条件排序方法实例_python

项目编写过程中,总能遇见对字典进行排序什么的,如果要实现多条件排序只需要下面几行代码实现.充分体现了python的好处了. 复制代码 代码如下: teamitems = [{'team':'France'     , 'P':1 , 'GD':-3 , 'GS':1 , 'GA':4},             {'team':'Uruguay'     , 'P':7 , 'GD':4  , 'GS':4 , 'GA':0},             {'team':'SouthAfrica'

Python的装饰器decorator的学习笔记

1. 这是个什么东东? 书上说得不是太清楚,它说类似于Java的AOP(Aspect Oriented Programming,面向方面编程),我对AOP一无所知.根据我对许多例子用法的反复揣摩,我认为是类似于程序设计语义学中所说的前键 与后键 的概念(Eiffel中的@pre 与@post ).当然你可以在装饰器中做比前键与后键更多的事,如:引入日志.增加计时逻辑来检测性能.给函数增加事务的能力.   其实总体说起来,装饰器其实也就是一个函数,一个用来包装函数的函数,返回一个修改之后的函数对象

php数组的索引的学习笔记

存储在数组中的值被称为数组元素,每个数组元素有一个相关的引索(也称为关键字),可以用来访问元素.PHP允许间隔性的使用数字或字符串作为数组的引索.使用字符串作为引索更具有意义和便于使用. 数字索引数组 创建一个数组可以使用如下代码: $num = array(1, 2, 3, 4, 5, 6);   以上代码会创建一个名为 $num 的数组,包含数字从1-6,array() 是一个语言结构,而不是函数. 如果需要按照升序排列数字保存在一个数组中,可以使用 range()函数自动创建这个数组. $