本节将学习元组、字典,以及其他涉及到的相关知识


1.元组 (tuple)


元组由圆括号括起来,元素之间用逗号相隔。元组是不可变对象,一旦定义了,就不能更改

>>> t=('a','b','c')
>>> t[1]
'b'
>>> t[1]=4 Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
t[1]=4
TypeError: 'tuple' object does not support item assignment

元组只有tuple.index() 和tuple.count() 两个方法。

tuple.index(x)  返回元组中第一个元素值为x的索引

tuple.count(x) 统计并返回元组中元素值为x的个数

>>> t=('a','b','c','c',1,2)
>>> t.index('c')
2
>>> t.index(1)
4
>>> t.count('c')
2
>>> t.count(1)
1

定义元组可以使用以下方法:

>>> t='x','y',1,2,3
>>> t
('x', 'y', 1, 2, 3)
>>> t='',
>>> t
('',)
>>> len(t)
1

元组的其他用法:

>>> t=123,234,'asss'
>>> x,y,z=t
>>> x
123
>>> y
234
>>> z
'asss'
>>> t
(123, 234, 'asss')
>>> for i in t:
print i 123
234
asss
>>> u=t,(1,2,3)
>>> u
((123, 234, 'asss'), (1, 2, 3))

2.字典(dict)


字典是由{key1:value,key2:value}形式组成。字典是可变的对象。key值必须唯一。 字典是不能通过像列表那样用排好序的数字来索引的,必须通过key来引用某个值,并且是没有先后顺序的。

以下是字典的使用例子:

>>> d={'name':'Jack','age':10,'sex':'feman'}
>>> d['name']
'Jack'
>>> d['age']
10
>>> for i in d.keys():
print d[i] 10
Jack
feman

字典不能直接通过key,新增一个key:value

>>> d={'name':'Jack','age':10,'sex':'feman'}
>>> d['address':'china'] Traceback (most recent call last):
File "<pyshell#69>", line 1, in <module>
d['address':'china']
TypeError: unhashable type

字典能通过已有的key,更改该key的value值:

>>> d={'name':'Jack','age':10,'sex':'feman'}
>>> d['age']=20
>>> d
{'age': 20, 'name': 'Jack', 'sex': 'feman'}

字典还能通过del函数,删除指定key:value

>>> d={'name':'Jack','age':10,'sex':'feman'}
>>> del(d['age'])
>>> d
{'name': 'Jack', 'sex': 'feman'}

我们还可以通过dict() 来新建一个字典

>>> d=dict(name='Flack',age=10,sex='man')
>>> d
{'age': 10, 'name': 'Flack', 'sex': 'man'}
>>> d=dict([('sape', 4139), ('guido', 4127), ('jack', 4098)])
>>> d
{'sape': 4139, 'jack': 4098, 'guido': 4127}
>>> d=dict((['sape', 4139], ['guido', 4127], ['jack', 4098]))
>>> d
{'sape': 4139, 'jack': 4098, 'guido': 4127}

3.字典(dict)的函数


dict.clear() 清空字典,使字典为空。 而del(dict)是删除字典

>>> d={'name':'Jack','age':10,'sex':'feman'}
>>> d.clear()
>>> d
{}
>>> d={'name':'Jack','age':10,'sex':'feman'}
>>> del(d)
>>> d Traceback (most recent call last):
File "<pyshell#100>", line 1, in <module>
d
NameError: name 'd' is not defined

dict.copy() 复制一个和dict一样的字典

>>> d={'name':'Jack','age':10,'sex':'feman'}
>>> c=d.copy()
>>> d.clear()
>>> d
{}
>>> c
{'age': 10, 'name': 'Jack', 'sex': 'feman'}

dict.fromkeys(S[,v]) ,S里的元素(元素可能重复,重复的只取一个,不会报错)作为键,v作为所有键的值,v 的默认值为 None。返回一个新的字典

>>> d={'name':'Jack','age':10,'sex':'feman'}
>>> c=d.fromkeys('name','lirong')
>>> c
{'a': 'lirong', 'e': 'lirong', 'm': 'lirong', 'n': 'lirong'}
>>> c=d.fromkeys('namee','lirong')
>>> c
{'a': 'lirong', 'e': 'lirong', 'm': 'lirong', 'n': 'lirong'}

dict.get(k[,d]) 如果dict中的键k存在,取dict[k]的值,如果不存在,则取d,d默认为None

>>> c={1:2,2:3,3:4}
>>> print c.get(1,2)
2
>>> print c.get(5,2)
2
>>> print c.get(3,2)
4

dict.has_key(k) 判断dict中是否存在键k,若有,返回true,若无,返回false

>>> c={1:2,2:3,3:4}
>>> c.has_key(1)
True
>>> c.has_key(10)
False

dict.items() 将dict的key:value转换成元组[(key1,value1),(key2,value2)..]

>>> c={1:2,2:3,3:4}
>>> c.items()
[(1, 2), (2, 3), (3, 4)]

dict.iteritems() 将dict的key:value转换成一个迭代器

>>> c={1:2,2:3,3:4}
>>> f=c.iteritems()
>>> f.next()
(1, 2)
>>> f.next()
(2, 3)

dict.iterkeys()将dict的键key转换成一个迭代器

>>> c={1:2,2:3,3:4}
>>> f=c.iterkeys()
>>> f.next()
1
>>> f.next()
2

dict.itervalues() 将dict的值Value转换成一个迭代器

>>> c={1:2,2:3,3:4}
>>> f=c.itervalues()
>>> f.next()
2
>>> f.next()
3

dict.keys() 以列表的形式返回dict的键

>>> c={1:2,2:3,3:4}
>>> c.keys()
[1, 2, 3]

dict.pop(k[,d]) 删除键为k的key:value,并返回value (如果k不存在,则返回d)

>>> c={1:2,2:3,3:4}
>>> c.pop(2,10)
3
>>> c.pop(3,10)
4
>>> c.pop(3,10)
10

dict.popitem() 删除键值对,并以元组的形式返回该键值对

>>> c={1:2,2:3,3:4}
>>> c.popitem()
(1, 2)
>>> c.popitem()
(2, 3)
>>> c.popitem()
(3, 4)
>>> c
{}

dict.setdefault(k[,d]) 返回dict[k]的值,如果键k不存在,那么该函数为会新增dict[k]=d,并且返回d

>>> c
{}
>>> c.setdefault('name','lirong')
'lirong'
>>> c
{'name': 'lirong'}
>>> c.setdefault('name','test')
'lirong'
>>> c
{'name': 'lirong'}

dict.update(F) ,用迭代器或字典F来更新dict,如果F中的元素在dict中没有,则添加到dict中

>>> c
{'name': 'lirong'}
>>> c.update()
>>> c
{'name': 'lirong'}
>>> f={"a":1,"b":2}
>>> c.update(f)
>>> c
{'a': 1, 'b': 2, 'name': 'lirong'}

dict.values() 以列表的形式返回dict的value值

>>> c
{'a': 1, 'b': 2, 'name': 'lirong'}
>>> c.values()
[1, 2, 'lirong']

(Python)元祖、字典的更多相关文章

  1. python 元祖字典集合

    一.元祖 1.用途:记录多个值,当多个值没有改变的需求,元祖不能修改,但元祖里的数据的数据可以修改. 2.定义方式:在()内用逗号分隔开多个任意值. 思考:如果定义一个只有一个一个值的元祖. # t ...

  2. python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍

    目录 python学习第八讲,python中的数据类型,列表,元祖,字典,之字典使用与介绍.md 一丶字典 1.字典的定义 2.字典的使用. 3.字典的常用方法. python学习第八讲,python ...

  3. python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍

    目录 python学习第七讲,python中的数据类型,列表,元祖,字典,之元祖使用与介绍 一丶元祖 1.元祖简介 2.元祖变量的定义 3.元祖变量的常用操作. 4.元祖的遍历 5.元祖的应用场景 p ...

  4. python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍

    目录 python学习第六讲,python中的数据类型,列表,元祖,字典,之列表使用与介绍. 二丶列表,其它语言称为数组 1.列表的定义,以及语法 2.列表的使用,以及常用方法. 3.列表的常用操作 ...

  5. python-列表元祖字典集合

    列表 list = ["a", "b", "c", "d"]元祖 tup = (1, 2, 3, 4, 5 ) 1.元组 ...

  6. python基础学习笔记第四天 list 元祖 字典

    一 LIST方法 列表操作包含以下函数:1.cmp(list1, list2):比较两个列表的元素 2.len(list):列表元素个数 3.max(list):返回列表元素最大值 4.min(lis ...

  7. python学习之列表,元祖,字典

    python基础 列表  [ ] stats =[1,2,3,4,5] 元素1,2,3,4,5 下标,索引,角标,初始从0开始 增加 stats.append(7)#append方法添加 stats. ...

  8. 关于Python元祖,列表,字典,集合的比较

      定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'], ...

  9. Python学习笔记---切片 列表 元祖 字典 集合

    列表[1,2,3,2]#[] 元祖(1,2,3,2)#() 字典{1:2,3:2}#{} 集合{1,2,3,2}#{} 1,集合与列表的区别,集合里不能有重复元素 2.字典与集合的区别,都是用花括号表 ...

  10. python入门(五):切片列表元祖字典

    1.切片 针对序列,使用切片可以获得我们想要的内容 序列:字符串.列表.元祖 特点:可以使用坐标获取某一个值.坐标是从0开始算 >>> s="0123456789" ...

随机推荐

  1. linux下开启mysql慢查询,分析查询语句

    一,为什么要开启这个查询呢? 数据库是很容易产生瓶颈的地方,现在Nosql大家讨论这么热,估计都被数据库搞郁闷了.mysql中最影响速度的就是那些查询非常慢的语句,这些慢的语句,可能是写的不够合理或者 ...

  2. 【javascript基础】5、创建对象

    前言 今天从家里回到了学校,在家呆了十天,胖了几斤的重量,又折腾回学校了,春节回家真是艰辛的路途.随便扯扯我的往返行程:为了省钱我没有选择直飞到长春往返都是到北京转的,这样我和女朋友可以节省4000块 ...

  3. centos6.4安装VMwareTools

    centos6.4安装VMware Tools,同样适用于VMware.ESXi.Hypervisor #如果文件不存在需要创建 mkdir /mnt/cdrom #挂载光驱 mount -t aut ...

  4. iBeacon知识1

    iBeacon的数据主要由四种资讯构成,分别是UUID(通用唯一标识符).Major.Minor.Measured Power. UUID是规定为ISO/IEC11578:1996标准的128位标识符 ...

  5. UITapGestureRecognizer响应顺序是怎么样的

    一个scrollview上有几个按钮在scrollview上add 了一个单击事件 singletap = [[UITapGestureRecognizer alloc] initWithTarget ...

  6. 潜入ICU的四逆汤

    制附子50克(先煎2小时).干姜15克.炙甘草10克.桂枝10克.上好肉桂10克(后下).煎取药液300毫升,分三次鼻饲.这是昨天我给A先生病危的父亲开的处方:四逆汤加肉桂.桂枝. 昨天上午的门诊到2 ...

  7. 小学了一下css hack

    实例讲解: Hack应用情境(一) 适用范围:IE:6.0,IE7.0,IE8.0之间的兼容 实例说明: 使用了渐进识别的方式,从总体中逐渐排除局部.首先,巧妙的使用“\9”这一标记,将IE游览器从所 ...

  8. Swift中的Optional类型 (可选类型)与强制解包 ? !

    我们在swift的开发中会经常遇见?和! ,理解这两个符号深层次的内容对我们的开发是相当有利的: 目前网上对swift3.0的教程还相当的少,如果去搜索会发现早期的说法,在定义变量的时候,swift是 ...

  9. hive查看建表语句

    查看hive建表语句:show create table tablename; 查看hive表结构:describe  tablename; 简写:desc tablename;

  10. css的一种预处理器 sass

    之前觉得关于css什么的没什么,后来让别人给问住了...然后就悲催了... sass是一种css的预处理器,是一种函数式的css的编程: 主要还是看官网 http://www.w3cplus.com/ ...