python中的数据类型之元组和字典

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

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

>>> 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)

  

原文地址:https://www.cnblogs.com/tanxu05/p/9901790.html

时间: 2024-08-02 14:49:16

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

在python中,列表,元组,字典,字符串之间是可以互相转换的

list1=['name','age','address'] print('把列表list1转换为字符串:',str(list1))print(type(str(list1)) str='wuya name sex age' print ('把字符串str转换为列表:',str.split(' '))print('类型为:',type(str.split(' ')) print ('把列表list1转换为元组:',tuple(list1))print('类型为:',type(tuple(list

Python中的数据类型

Python中的数据类型 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串(http://www.cnblogs.com/yjd_hycf_space/p/6846284.html)1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字符串,例如:str='this is string';print str; b.使用双引号(")双引号中的字符串与单引号中的字符串用法完全相同,例如:str="this is str

2.python基础之—列表,元组,字典,集合,字符串的使用方法

一.关于python序列的简介. python里面的序列大部分都可以执行,索引,切片,加,乘,检查长度,以及检查某个成员是否存在,甚至还可以找出这个序列中最小的元素和最大的元素,并且序列都是可迭代的. 解释下个人理解的迭代,迭代(iteration),序列中的迭代就是对序列中的每个元素重复执行某些操作/ 具体的迭代方式后面会说到. 下面就说说python序列的共有特点. 1.索引 一个序列中,所有的元素都有自己的编号,这个编号是从0开始的,这个编号就是所谓的索引,这些元素可以通过索引来依次访问.

Python数据结构:列表、元组和字典

在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元组.元组通过圆括号中用逗号分割的项目定义. 元组最通常的用法是用在打印语句中 age = 22 name = 'Swaroop' print '%s is %d years old' % (name, age) print 'Why is %s playing with that python?'

python中基本数据类型以及运算符

python中基本数据类型以及运算符的知识 一.与用户的交互以及python2与python的区别 1.1什么是与用户交互 用户交互就是人往计算机中input(输入数据),计算机print(输出结果),用户交互的本质就是输入输出. 1.2输入input username = input("请输入您的姓名: ")>>请输入您的姓名: 占亚峰password = input('请输入您的密码: ')>>请输入您的密码: 123456 1.3输出print print

Python之路-(列表、元组、字典、集合)

一.列表 序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推. Python有6个序列的内置类型,但最常见的是列表和元组. 序列都可以进行的操作包括索引,切片,加,乘,检查成员. 此外,Python已经内置确定序列的长度以及确定最大和最小的元素的方法. 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 #取值.切片 names = ["zhangsan&

Python中的数据类型和数据结构

一.数据类型 Python中有六个标准数据类型: Number(数字) String(字符串) List(列表) Tuple(元组) Sets(集合) Dictionary(字典) 其中,除列表List和Dictionary字典外,其他数据类型皆为不可变数据类型. 二.数据结构 Python中常见的数据结构可以统称为容器(container).序列(如列表和元组).映射(如字典)以及集合(set)是三类主要的容器. 列表:shoplist = ['apple', 'mango', 'carrot

Python数据结构之列表、元组及字典

一位大牛Niklaus Wirth曾有一本书,名为<Algorithms+Data Structures=Programs>,翻译过来也就是算法+数据结构=程序.而本文就是介绍一下Python中内建的三种数据结构----列表.元组以及字典. 列表 列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个 序列 的项目. 1.list函数 因为字符串不能像列表一样被修改,所以有时候根据字符串创建列表就很有用了,list可以实现这个操作: 1 >>>list("H

python中的列表和元组

列表:list 元组:tuple 列表是python中常用的数据类型,通过列表可以实现对数据的存储.修改. 列表的定义: name_list = ['apple','orange','grape','pear','barry'] 可以通过下标访问列表中的元素,下标从0开始 切片:取多个元素 追加: 插入: 修改: 删除[3种方法] 扩展 拷贝[拷贝分为浅拷贝  和  深拷贝] 统计 排序&翻转 [说明:3.0里不同数据类型不能放在一起排序了] 获取下标: 获取下标index方法如下: 元组:元组