美文网首页
python学习笔记17_元组及字典简单介绍

python学习笔记17_元组及字典简单介绍

作者: flamingocc | 来源:发表于2018-03-03 18:09 被阅读0次

python 笔记17

1.元组 tuple

元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片操作同样适用于元组,元组写在小括号()里面,元素之间用逗号隔开。
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含0个或1个元素的元组比较特殊,所有一些额外的语法规则:

tup1 = ()     #空元组
tup2 = (20,)  #一个元素,需要在元素后添加逗号

作用:
1.对于一些数据我们不想被修改,可以使用元组
2.另外,元组的意义还在于,元组可以映射(和集合的成员)中当做键使用——而列表则不行;元组作为很多内建函数和方法的返回值存在。

关于可读:

a = (1,2,3,4)
print(a[1])
a[1] = 5
print(a)

输出: 错误!

这里a是一个元组,元组列表是只读的,所以不能被修改。


2.嵌套

a = [[1,2,4],'Alex',4,(2,3,4)]
b = a[0]
print (b)

输出: [1,2,4]

上面是列表中放元素、列表、元组。
如果要输出a中第一个列表中的那个2呢?

a = [[1,2,4],'Alex',4,(2,3,4)]
b = a[0][1]      # 找不同级列表的元素
print (b)

输出: 2

3.字典

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

不可变类型:整形、字符串、元组
可变类型: 列表、字典

字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典的两个特点: 无序、键唯一

创建字典:

dic={'name':'flamingo','age':'23','hobby':'girl'}
print(dic[name])

输出: flamingo

另一种创建字典的方法:

dic = dict((('name','flamingo'),('age','23'),))
print(dic)

输出: {'name': 'flamingo', 'age': '23'}

但是,字典里面的键不能放可变类型:

dic = {[1,2,3],'name':'flamingo'}

报错: 不支持的哈希类型,就是因为列表是可变类型。

放不可变类型:

dic={'name':'alex','age':'35','hobby':{'girl_name':'铁锤','age':35}}dic1 = {'name': 'alex', 'age': 36, 'sex': 'male'}

则不会报错。

3.1 字典·增

dic1 = {'name':'flamingo'}
dic1['age'] = 18 
print(dic1)

输出: {'name': 'flamingo', 'age': 18}

dic1.setdefault('age',34)

1.如果能找个age这个键,则不修改age的值;如果没有age这个值,就添加age:34.
2 .setdefault 有返回值:

dic1 = {'age': '18'}
ret = dic1.setdefault('age',34)
print (ret)

输出: 18

3.2字典·查

dic1 = {'name': 'flamingo', 'age': 23, 'sex': 'male'}
print(dic1[name])

输出: flamingo

如果不知道里面有什么键,可以这么查:

dic1 = {'name': 'alex', 'age': 36, 'sex': 'male'}
print(dic1.keys())
print(dic1.values())
print(dic1.item())

输出:
dict_keys(['name', 'age', 'sex'])
dict_values(['alex', 36, 'male'])
dict_items([('name', 'alex'), ('age', 36), ('sex', 'male')])

上面输出的结果有dict_keys() 、dict_values()和dict_items()这些固定的词组,
如果我们想让它输出成列表的形式,可以加* list()

dic1 = {'name': 'alex', 'age': 36, 'sex': 'male'}
print(list(dic1.keys()))
print(list(dic1.values()))
print(list(dic1.item()))

输出:
['name', 'age', 'sex']
['alex', 36, 'male']
[('name', 'alex'), ('age', 36), ('sex', 'male')]

3.3 字典·改

dic1 = {'name': 'flamingo', 'age': 36, 'sex': 'male'}
dic1['age'] = 23    #类似列表,但列表[]中写的是位置,而字典中是键的名称
print(dic1)

输出: 
{'name': 'alex', 'age': 23, 'sex': 'male'}

类似列表中的.extent,字典的叠加方式为:

dic4 = {'age':23,'name':'flamingo','hobby':'python'}
dic5 = {'age':'18','job':'studengt'}
dic4.update(dic5)
print(dic4)

输出:
{'age': '18', 'name': 'flamingo', 'hobby': 'python', 'job': 'studengt'}

可见,dic4.update(dic5) ,是把dic4中原来存在的键的值用dic5中的替换了,而如果dic4中没有的则直接加上去。

3.4 字典·删

dic1 = {'name': 'flamingo', 'age': 36, 'sex': 'male'}
del dic1['name']  #删除了name键值对
dic1.clear()      #清空列表
dic1.pop('age')   #删除并返回一个值,36
dic1.popitem()    #随机删除某组键值对,并以元组方式返回

3.5 字典·其他操作·赋同一个值

给所有的键给同一个值:(或同一个列表)

dic6 = dict.fromkeys(['host1','host2','host3'],'test')
print(dic6)
输出:
{'host1': 'test', 'host2': 'test', 'host3': 'test'}

3.6 字典·嵌套

3.7 字典·sorted(dict)

sorted(dict) : 返回一个有序的包含字典所有key的列表

dic = {'5':'555','2':'222','4':'444'}
print(sorted(dic))
print(sorted(dic.items()))
print(sorted(dic.values()))

输出:
['2', '4', '5']
[('2', '222'), ('4', '444'), ('5', '555')]
['222', '444', '555']

3.8 字典遍历

方式一: (推荐,效率高)

dic1 = {'name': 'flamingo', 'age': 36, 'sex': 'male'}
for i in dic1:
    print(i,dic1[i])

输出:
    name flamingo
    age 36
    sex male

方式二: (不推荐,多了一个转换的过程,效率不高)

dic1 = {'name': 'flamingo', 'age': 36, 'sex': 'male'}
for i,v in dic1.items():
    print(i,v)
    
输出:
    name flamingo
    age 36
    sex male

相关文章

  • python学习笔记17_元组及字典简单介绍

    python 笔记17 1.元组 tuple 元组被称为只读列表,即数据可以被查询,但不能被修改,所以,列表的切片...

  • 2018-06-29

    python学习 学习python字符串、列表、元组、字典、日期和时间模块

  • Python基础之元组、字典,集合详解

    之前总结了Python列表,这篇总结Python的元组,字典和集合。 一 元组 tuple Python 的元组与...

  • Python ☞ day 3

    Python学习笔记之 字符串 & 列表 & 元组 & 字典 字符串 什么是字符串? 字符串运算 字符串方法 列表...

  • 5 字典

    前面介绍了列表、元组,Python中另外一类非常重要的对象是字典。 Python中,字典是一系列键-值对。每个键都...

  • python之列表(一)

    在学习python过程中经常会提到列表、元组、字典等数据类型,其中列表和元组可以包含多个值,字典采用的是键值对的模...

  • Python3学习笔记——元组、字典

    元组 1、元组的定义 元组可以定义为:元素不可变的列表。请看下列代码: 注意:列表的元素是用方括号“[]”括起来的...

  • Python笔记004-元组的拆包和命名元组

    Python笔记004-元组的拆包和命名元组 以下是我学习《流畅的Python》后的个人笔记,现在拿出来和大家共享...

  • Python 列表、元组、集合、字典、字符串相互转换

    在学习 python 中列表、元组、集合、字典的时候,总结了各种对象之间的转换方法,主要参考了 Python 列表...

  • python关于几种数据类型的辨析

    python中有几个数据类型:列表,元组,字典、集合什么时候该用什么样的数据类型,这里笔者做一个简单的说明和介绍。...

网友评论

      本文标题:python学习笔记17_元组及字典简单介绍

      本文链接:https://www.haomeiwen.com/subject/ryqxfftx.html