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

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

>>> 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. Picklist的配置

    Picklist包括静态的Picklist和动态的Picklist.静态Picklist的配置 1.首先在All Projects中,选中Picklist,复制一个Pistlist进行修改.Name( ...

  2. OpenSUSE 内核编译教程 (kernel 2.6.x)

    http://cn.opensuse.org/OpenSUSE_%E5%86%85%E6%A0%B8%E7%BC%96%E8%AF%91%E6%95%99%E7%A8%8B_(kernel_2.6.x ...

  3. mysql在表的某一位置增加一列、删除一列、修改列名

    如果想在一个已经建好的表中添加一列,可以用以下代码: ) not null; 这条语句会向已有的表中加入一列,这一列在表的最后一列位置.如果我们希望添加在指定的一列,可以用: ) not null a ...

  4. React学习笔记 - 组件&Props

    React Learn Note 4 React学习笔记(四) 标签(空格分隔): React JavaScript 三.组件&Props 组件可以将UI切分成一些独立的.可复用的部件,这样你 ...

  5. vsftpd的安装与使用

    1.安装vsftpdyum -y install vsftpdservice vsftpd startchkconfig vsftpd on2.配置vsftpd#进入vsftpd配置文件vim /et ...

  6. Hibernate多表查询连接操作

    SQL多表操作分类; 1.交叉连接:select*from t_customer cross Join t_order; 2.显示内连接: select*from t_customer c inner ...

  7. doppia代码支持

    stixels_t在stixel.hpp里,存储class stixel的vector

  8. [转]《深入浅出MFC》– MFC程序的生死因果

    1.首先MFC程序需要哪些函数库? Windows C Runtime函数库 LIBC.LIB       C Runtime函数库的静态链接版本 MSVCRT.LIB     C Runtime函数 ...

  9. 【洛谷P3811】[模板]乘法逆元

    乘法逆元 题目链接 求逆元的三种方式: 1.扩欧 i*x≡1 (mod p) 可以化为:x*i+y*p=1 exgcd求x即可 inline void exgcd(int a,int b,int &a ...

  10. HDU 1110 Equipment Box (判断一个大矩形里面能不能放小矩形)

    传送门: http://acm.hdu.edu.cn/showproblem.php?pid=1110 Equipment Box Time Limit: 2000/1000 MS (Java/Oth ...