python笔记2-数据类型:元组、字典常用操作
元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tp=(1,2,3,'a','b')
a = 'hello world' #这样定义是str类型
b = ('hello world') #定义元组时,如果只有一个元素,那么b的类型就是str
c = ('hello world',)
print(type(c))
元组只有count和index方法,如下:
tp = ('127.0.0.1', '', 'b', 'a', '', 1, 2, 3, 1, 44)
print(tp[0])              #也可以通过下标取值
print(tp.count(''))   #查找元素在元组中出现的次数
print(tp.index('a'))      #查找元素的索引位置
元组的强制类型转换:
lis = [1, 2, 3, 4, 5, 'b', 'c']
new_lis = tuple(lis) #将list强制类型转换为tuple
print(type(new_lis))
目前可以强制类型转换的函数有:int()、str()、float()、list()、tuple()
字典
字典是另一种可变容器模型,且可存储任意类型对象,字典存储的数据是无序的。
和list比较,dict有以下几个特点:
- 查找和插入的速度极快,不会随着key的增加而变慢;
- 需要占用大量的内存,内存浪费多。
而list相反:
- 查找和插入的时间随着元素的增加而增加;
- 占用空间小,浪费内存很少。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }
字典中键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
获取字典元素的方法,如下:
#字典,定义时key不能重复
info = {'name': 'xiaoming', 'sex': 'man', 'age': 20, 'id': 1}
#2种取值方法的区别:如果传入的key不存在,通过[]取值会报错;通过get取值返回None
print(info['name']) #字典取值,通过key取出对应的value
print(info.get('name')) #也可以通过get方法获取,get(key)
print(info.get('addr', 'beijing')) #如果传入的key不存在,则返回传入的默认值:beijing; 不写的话,若获取不到的key,则返回None
添加字典元素,方法如下:
#添加元素
info['addr'] = 'beijing' #通过[key] = value方式可以添加元素,若key不存在,则新增
print(info)
info.setdefault('phone','') #也可以通过setdefault(key,value) 方法添加元素
print(info)
修改字典中的元素,方法如下:
info['id'] = 7 #若key存在,则修改该key对应的value;若key不存在,该方法则新增元素
print(info)
删除 字典中的元素,如下:
#删除
del info['addr'] #删除元素
info.pop('addr') #字典是无序的,传入需要删除的key, pop方法会返回删除的key对应的value
print(info)
#info.pop('kk') #如果删除的key不存在,则报错:KeyError: 'kk'
info.clear() #清空字典
info.popitem() #随机删除一个元素,用处不大
字典循环遍历元素,如下:
info = {'name': 'xiaoming', 'sex': 'man', 'age': 20, 'id': 1}
print(info.keys())   #获取该字典的所有key,执行结果:dict_keys(['name', 'age', 'sex', 'id'])
print(info.values()) #获取该字典的所有value,执行结果:dict_values(['xiaoming', 20, 'man', 1])
print(info.items())  #打印结果为所有的key、value,循环遍历时使用,执行结果:dict_items([('name', 'xiaoming'), ('age', 20), ('sex', 'man'), ('id', 1)])
#字典循环遍历
for k, v in info.items():
    print('key: %s  value: %s' % (k, v))
执行结果:
key: age value: 20
key: sex value: man
key: name value: xiaoming
key: id value: 1
字典的update用法:
info = {'a': 'xiaoming', 'sex': 'man', 'age': 20, 'id': 1}
info2 = {'a':1,'b':2}
info.update(info2) #把两个字典合并成1个,如果有一样的key,则更新value,执行结果:{'sex': 'man', 'id': 1, 'b': 2, 'age': 20, 'a': 1}
print(info)
练习:定义一个字典,修改字典中的值,将color对应的yellow修改为green,如下:
all = {
    'car': {
        'color': ['red', 'yellow', 'black'],
        'money': 1111,
        'name': 'beijing'
    },
    'car1': {
        'id': [1, 2, 3],
        'money': 222,
        'name': 'shanghai'
    },
    'car2': {
        'city': ['beijing', 'shanghai', 'zhengzhou'],
        'money': 3333,
        'name': 'henan'
    }
}
代码如下:
car_value = all.get('car')           #返回值是字典,执行结果:{'name': 'beijing', 'color': ['red', 'yellow', 'black'], 'money': 1111}
print(car_value)
color_list = car_value.get('color')  #返回结果是list,根据key找到对应的value,执行结果:['red', 'yellow', 'black']
print(color_list)
color_list_value = color_list[1]     #list根据下标取值,返回结果yellow
print(color_list_value)
color_list[1] = 'green'              #更改列表的值,将yellow更改为green
print(all.get('car'))                #执行结果:{'money': 1111, 'color': ['red', 'green', 'black'], 'name': 'beijing'}
python笔记2-数据类型:元组、字典常用操作的更多相关文章
- python基础一数据类型之字典
		摘要: python基础一数据类型之一字典,这篇主要讲字典. 1,定义字典 2,字典的基础知识 3,字典的方法 1,定义字典 1,定义1个空字典 dict1 = {} 2,定义字典 dict1 = d ... 
- Python基础——原生数据类型(字典,列表,元组,字符串)
		字典Dictionary 字典定义了键值对的1对1管理. 1.定义字典 请看下面的栗子,我们先创建了一个具有两个元素的字典,每对都是key:value的形式. 我们能通过key得到value,但是不能 ... 
- Python知识点入门笔记——特色数据类型(元组)
		元组(tuple)是Python的另一种特色数据类型,元组和列表是相似的,可以存储不同类型的数据,但是元组是不可改变的,创建后就不能做任何修改操作. 创建元组 用逗号隔开的就是元组,但是为了美观和代码 ... 
- python 深浅拷贝 元组 字典 集合操作
		深浅拷贝 :值拷贝 :ls = [,,] res = ls 则print(res)就是[,,] 浅拷贝 :ls.copy() 深拷贝:ls3 = deepcopy(ls) # 新开辟列表空间,ls列表 ... 
- Python基础学习----字典常用操作
		字典的常见操作: # 字典: # 格式:{键值对,键值对} dict_demo={"name":"bai-boy","age":17} # ... 
- python笔记(1)---数据类型
		数据类型 基本的五大数据类型 对python中的变量有如下的五种基本的数据类型: Number数字 list列表 Tuple元组 string字符串 Dictionary字典 1.Number [注意 ... 
- Python笔记之数据类型
		数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网页等各种各样的数据,不同的数据,需要定 ... 
- Python | 字符串拆分和拼接及常用操作
		一.字符串拆分 str = "hola ha1 ha2 china ha3 " # partition 从左侧找到第一个目标,切割成三组数据的[元组] str1 = str.par ... 
- Python3笔记022 - 5.1 字符串常用操作
		第5章 字符串及正则表达式 5.1 字符串常用操作 5.1.1 拼接字符串 使用+运算符可完成多个字符串的拼接,产生一个新的字符串对象. str1 = "2020年07月06日是" ... 
随机推荐
- 封装实现JavaScript 文件的动态载入功能
			function loadScript(url, callback){ var script = document.createElement ("script") script. ... 
- 并发编程系列小结(线程安全,synchronized,脏读,线程间的通信wait/notify,线程的三种实现方式Demo,可替代wait/notify的方法)
			线程安全: 当多个线程访问某一个类(对象或方法)时,这个类始终都能表现出正确的行为,那么这个类(对象或方法就是线程安全的) synchronized: 可以在任意对象或方法上加锁,而加锁的这段代码称为 ... 
- JMeter 十五:函数以及变量
			参考:http://jmeter.apache.org/usermanual/functions.html 函数以及参数引用 JMeter 函数引用方式如下: ${__functionName(var ... 
- gensim自然语言处理(续)
			上一篇,已经实现了如何将一条语句在一个语料库中比较相似度, 发现运行的时候每次都要编译语料库,通过查找资料,可以一次性编译成预料库,存人文件 编译语料库代码 11_k.py import sysimp ... 
- XML-RPC.NET
			XML-RPC.NET 是一个 .NET 的客户端服务器的基于 XML-RPC 远程过程调用的框架. 示例代码: [XmlRpcUrl("http://betty.userland.com/ ... 
- 【ajax+php】动态展示4级单位(省、市、县、镇)
			1.本篇教程以ajax+php动态展示[省.市.县.镇]四级地区单位 2.效果图: 3.不废话,贴代码! HTML: <div class="form-group"&g ... 
- java基础讲解08-----类和对象
			1.什么是面向对象? 面向对象设计的实质 就是对现实世界的对象进行建模操作. 现实的生活中,随处可见的一种事物就是对象,对象是事物存在的实体,通常我们将会对对象划分为两个部分,静态部分和动态部分.比如 ... 
- WPF自定义控件之水印文本(密码)框
			首先来讲讲创建这个控件的初衷,一个让我很郁闷的问题. 公司的客户端项目采用WPF+MVVM技术实现,在近期地推客户端的过程中遇到了一个很奇葩的问题:在登录界面点击密码框就会直接闪退,没有任何提示 密码 ... 
- Java 装饰模式(4.4)
			装饰模式(decorator pattern). 依照Num模型.讨论职业/IProfession类层次. IProfession定义了方法say(String),事实上现类教师/ Teacher.医 ... 
- html5_storage存取实例
			<script src="jquery-1.8.3.js"></script><script>function set(){ var tt ... 
