一、元组:俗称不可变的列表,又被称为只读列表。元组用小括号括起来,里面可以放任何数据类型的数据,查询可以,循环也可以,切片也可以,但就是不能修改

注意:如果元组中只有一个元素,一定要加一个逗号,否则就不是元组。

>>> tu = (1,"Tanxu","A") #创建一个元组,用小括号括起来
>>> type(tu)
<class 'tuple'>
>>> tu1 = ("Tanxu")#当小括号内只有一个元素时,不是元组
>>> type(tu1)
<class 'str'>
>>> tu2 = ("Tanxu",)#元组只有一个元素时,要在该元素后加一个逗号
>>> type(tu2)
<class 'tuple'>
>>> tu3 = ()#定义一个空元组
>>> type(tu3)
<class 'tuple'>

注意:关于不可变,这里元组不可变的意思是子元素不可变【即元组没有修改操作】,而子元素内部的子元素可以改变,这取决于子元素是否是可变对象。【但是元组本身没有改变】

>>> tu[2] = "Tan" #对元祖进行修改会报错
Traceback (most recent call last):
File "<pyshell#8>", line 1, in <module>
tu[2] = "Tan"
TypeError: 'tuple' object does not support item assignment >>> tu4 = ("Tan","xu",[89,93,94])
>>> tu4[2][2] = 98 #可以对元素中子元素的子元素进行修改
>>> tu4
('Tan', 'xu', [89, 93, 98])

 

元组也有count、index、len等操作,用法同列表

二、字典:字典是以{}括起来的,内部使用key:value的形式来保存数据。如{“jay”:”周杰伦”,”jj”:”林俊杰”}

  注意:字典的key必须是可哈希的,不可变的【列表是不可哈希的】

补充:什么是可哈希的(hashable)不该改变的(imutable)?【来自官方文档翻译】

如果一个对象在自己的生命周期中有一哈希值(hash value)是不可改变的,那么它就是可哈希的(hashable)的,因为这些数据结构内置了哈希值,每个可哈希的对象都内置了__hash__方法,所以可哈希的对象可以通过哈希值进行对比,也可以作为字典的键值和作为set函数的参数。所有python中所有不可改变的的对象(imutable objects)都是可哈希的,比如字符串,元组,也就是说可改变的容器如字典,列表不可哈希(unhashable)。我们用户所定义的类的实例对象默认是可哈希的(hashable),它们都是唯一的,而hash值也就是它们的id()。

>>> dic1 = {'name':'Tanxu','sex':'女','age':18}
>>> type(dic1)
<class 'dict'>

 1、字典的相关操作:

  1)增加:

>>> dic1 = {'name':'Tanxu','sex':'女','age':18}
>>> dic1['height'] = 160 #直接添加,如果key重复了,会替换掉原来的value
>>> dic1
{'name': 'Tanxu', 'sex': '女', 'age': 18, 'height': 160} >>> dic1.setdefault('weight',45)#使用setdefault()添加元素时,返回的是value值;如果字典中存在了这个key,则不再进行保存操作
45
>>> dic1
{'name': 'Tanxu', 'sex': '女', 'age': 18, 'height': 160, 'weight': 45}

  2)删除:

>>> dic1.pop("weight")#删除一个元素,会返回这个元素对应的value值
45 >>> dic1.popitem()#删除一个元素,返回这个元素的key和value,返回的是一个元组。默认删除最后一个元素
('height', 160) >>> dic1.clear()#清空字典
>>> dic1
{}

  3)查询:

>>> dic1 = {'name':'Tanxu','sex':'女','age':18}
>>> dic1['name'] #如果key值存在,会返回其对应的value值;如果key值不存在,程序会报错
'Tanxu' #get方法:1)可以通过key值获取value的值,如果key不存在,默认返回None
>>> print(dic1.get("Tanxu"))
None
>>> print(dic1.get('name'))
Tanxu #2)如果设置了默认返回值,则当key不存在时,返回该默认值
>>> print(dic1.get('height','160'))
160 #setdefault操作==》1、首先判断原来的字典中有没有这个key,如果没有则执行添加
# 2、用这个key去字典中查询,返回查到的结果
>>> ret1 = dic1.setdefault("name",1)
>>> print(ret1)
Tanxu >>> ret2 = dic1.setdefault("height",160)
>>> print(ret2)
160

  4)d1.update(d2)  ==》把d2的k-v更新到d1中

>>> dic1 = {'name':'Tanxu','sex':'女','age':18}
>>> dic2 = {"height":"160","weight":"45"}
>>> dic1.update(dic2)
>>> dic1
{'name': 'Tanxu', 'sex': '女', 'age': 18, 'height': '160', 'weight': '45'}

 2、字典的其他相关操作

  1)得到字典中的key,value以及键值对

print(dict1.keys())  #拿到所有的key,返回key的集合,该集合可迭代循环
##for key in dict1.keys(): #循环遍历key值
## print(key) print(dict1.values()) #拿到所有的value,返回value的集合,该集合可迭代循环
##for value in dict1.values(): #循环遍历value值
## print(value) print(dict1.items()) #拿到所有的键值对,每一项都是元组,元组集合也可迭代
##for item in dict1.items():#循环遍历key:value键值对
## print(item)#返回元组
## print(item[0]) #返回key
## print(item[1]) #返回value
#遍历字典
for k,v in dic1.items():
  print(k)
  print(v)

  2)解构,解包

##解构  解包
a,b = (1,2) #即把a赋值为1,b赋值为2
print(a)

  3)字典的嵌套

dic = {
"name":"Tanxu",
"age":"19",
"hobby":"listen music",
"frend1":{
"name":"李四",
"age":"22",
"hobby":"writting"
},
"frend2":{
"name":"王五",
"age":"19",
"hobby":"singing"
}
} print(dic["frend1"]["name"]) 

三、range操作(迭代循环)

语法:

range(开始,结束,步长)默认开始可以取到,结束取不到,步长可以为负数

实例:

1、循环:for i in range(10):   #打印0 - 9
Print(i)
2、循环:for i in range(3,9): #打印3 - 8
Print(i)
3、循环:for i in range(3,10,2): #打印3,5,7,9
Print(i)
4、循环:for i in range(10,1,-1): #打印10,9,8,7,6,5,4,3,2
Print(i)
5、循环:for i in range(10,-10,-1): #打印10,9,8,7,6,5,4,3,2,1,0,-1,-2,……,-9
Print(i)

  

python中的数据类型之元组和字典的更多相关文章

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

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

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

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

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

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

  4. python基础之数据类型/字符串/元组/列表/字典

    Python 数据类型 数字类型: int整型,long 长整型(在python3.0里不区分整型和长整型).float浮点型:complex复数(python中存在小数字池:-5--257):布尔值 ...

  5. Python中的列表、元组、字典、字符串及切片操作

    我们引入一个新的概念:数据结构 数据结构是通过某种方式组织在一起的数据元素的集合,这些数据元素可以是数字或字符,甚至可以是其他数据结构,在python中,最基本的数据结构是序列,序列中的每个元素匾被分 ...

  6. python基础之数据类型之元组和字典

    四.元组 1.用途:元组是不可变的列表,能存多个值,但只能取,不能改 2.定义:name = (‘alex’, ’egon’, ‘wxx’) 在()内用,分割开,可存放任意类型的值 强调:x = (‘ ...

  7. python学习第九讲,python中的数据类型,字符串的使用与介绍

    目录 python学习第九讲,python中的数据类型,字符串的使用与介绍 一丶字符串 1.字符串的定义 2.字符串的常见操作 3.字符串操作 len count index操作 4.判断空白字符,判 ...

  8. python基础之 列表,元组,字典

    other help(str.strip) #查看是否有返回值以及返回值类型[] :称为索引操作符 1.列表 列表相比字符串来说能存储大量数据的python的基本数据类型,并且也拥有字符串的一些方法( ...

  9. python 变量、列表、元组、字典

    python 变量.列表.元组.字典 1.python 变量赋值 2.ptython  列表 3.python 元组 4.python  字典 1.  Python变量赋值     1.1变量的命名规 ...

随机推荐

  1. ORACLE查询删除重复记录三种方法

    本文列举了3种删除重复记录的方法,分别是rowid.group by和distinct,小伙伴们可以参考一下.   比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完 ...

  2. Spring MVC工程 无法拦截到url请求

    一直没有办法拦截到url的请求,tomcat启动也没有看到Springmvc容器启动的任何说明.所以就建立了一个普通的servlet工程,可以访问url.再重新发布springmvc项目,访问url, ...

  3. oracle_great_integration_译文

    website:https://www.oracle.com/corporate/features/great-integrations.html Great Integrations(伟大的整合) ...

  4. CSS z-index的用法

    理清 position及z-index的用法: static :  无特殊定位,对象遵循HTML定位规则absolute :  将对象从文档流中拖出,使用left,right,top,bottom等属 ...

  5. 【LaTeX】E喵的LaTeX新手入门教程(3)

    [LaTeX]E喵的LaTeX新手入门教程(3) 数学公式作者: 郭英东.sty 昨天熄灯了真是坑爹.前情回顾 [LaTeX]E喵的LaTeX新手入门教程(1)准备篇 [LaTeX]E喵的LaTeX新 ...

  6. STM32-F429ZIT6-关于驱动安装

    第一步:下载驱动 1.个人百度云链接:http://pan.baidu.com/s/1dE8vxy5 密码:yow0 2.网站下载:这个还是直接百度吧. 第二步:驱动安装 注意:安装之前要先关闭安全监 ...

  7. 安卓Socket开发注意事项

    如果要在安卓app里用到Socket通信,要满足: 1.在写代码的activity里import进Socket相关的包,这个很easy,如果你不知道要import什么包,也可以先不指定,可       ...

  8. 测试笔记:jsonp跨域接口测试

    原先测过这个接口,前后端同源(域名,协议,端口相同),开发提供的文档: $.post("http://host/url", { data1: "data1", ...

  9. 战神CPU计算机硬件组装

    今天本来更新DP常见优化的,但是下午土木学院吴书记找我组装电脑,晚上A题后,临时有一些事情,没来得及整理. 这里分享一下战神CPU(死垃圾)的组装. 一顿操作猛如虎,很艰难的装好机子了,发现吴书记被坑 ...

  10. Gym - 101334E 多叉树遍历

    题意:给定一个字符串,求有多少种树与之对应,对应方式是,每次遍历左节点,没有了,就回溯: 分析:d[i,j] = sum(d[i+1,k-1],d[k,j]) (str[i]==str[k]); 坑点 ...