Python-数据类型内置方法(2)
元组(tuple)
元组是不可变的列表,只可以存不可以修改,早起元组类型占用内存小
定义:tup = tuple((1,2,3))
内置方法:
索引取值
name_tuple = ("qinyj","age",18)
print(name_tuple[0])
索引切片
name_tuple = ("qinyj","age",18)
print(name_tuple[0:2])
长度len
name_tuple = ("qinyj","age",18)
print(len(name_tuple))
循环
name_tuple = ("qinyj","age",18)
for i in name_tuple:
print(i)
count
name_tuple = ("qinyj","age",18)
print(name_tuple.count("qinyj"))
index
name_tuple = ("qinyj","age",18)
print(name_tuple.index("qinyj"))
有序但不可变类型。
字典(dict)
定义:dic = dict()
内置方法:
优先掌握:
按key存取值:可存可取(可查可修改)
dic = {'a': 1, 'b': 2}
print(f"first dic['a']: {dic['a']}") dic['a'] = 3
print(f"second dic['a']: {dic['a']}")
长度len
dic = {'a': 1, 'b': 2}
print(len(dic))
成员运算
dic = {'a': 1, 'b': 2}
print("a" in dic)
删除del、pop指定元素
dic = {'a': 1, 'b': 2}
del dic["a"]
print(dic)
keys/values/items
dic = {'a': 1, 'b': 2}
print(dic.keys())
print(dic.values())
print(dic.items()) for i,k in dic.items:
print(i,k)
fo 循环:循环的是key
get:查指定元素,如果没有返回None,可设默认值
需要掌握
- get
- pop删除
- popitem删除末尾键值对
- update 扩展字典。类似list 中extend方法
- formkeys
- setdefault 有指定key不会改变值;无指定key则改变值
集合(set)
优先掌握
- 长度len
- 成员运算in和not in
- |并集、union
- &交集、intersection
- -差集、difference
- ^对称差集、symmetric_difference
- ==
- 父集:>、>= 、issuperset
- 子集:<、<= 、issubset
深浅拷贝
拷贝(赋值)
>>> lt1 = ["a","b","c"]
>>> print(id(lt1))
43366216
>>> lt2 = lt1
>>> print(id(lt2))
43366216
>>> lt1.append("d")
>>> print(lt1)
["a","b","c","d"]
>>> print(lt2)
["a","b","c","d"]
# 43366216 内存地址一样。两个变量指向同一个内存地址,一个变,另一个也改变
如果lt2 是lt1的拷贝对象,lt1 内部的任何数据类型的元素变化,lt2内部的元素也会跟着变化。因为可变类型值变id不变。
浅拷贝
>>> import copy
>>> lt1 = ["a","b","c",["d","e"]]
>>> print(id(lt1))
43434056
>>>
>>> lt2 = copy.copy(lt1)
>>> print(id(lt2))
43449224
>>> lt1[-1].append("f")
>>> print(lt1)
['a', 'b', 'c', ['d', 'e', 'f']]
>>> print(lt2)
['a', 'b', 'c', ['d', 'e', 'f']]
>>>
如果lt2是lt1的浅拷贝对象,lt1内部的不可变元素发生了变化,lt2不变,
如果lt1内部的可变元素发生了变化,lt2也跟着改变。
深拷贝
>>> import copy
>>> lt1 = ["a","b","c",["d","e"]]
>>> print(id(lt1))
43434440
>>> lt2 = copy.deepcopy(lt1)
>>> print(id(lt2))
43447368
>>> lt1[-1].append("f")
>>> print(lt1)
['a', 'b', 'c', ['d', 'e', 'f']]
>>> print(lt2)
['a', 'b', 'c', ['d', 'e']]
>>>
如果lt2是lt1的深拷贝对象,lt1内部的任何元素发生了变化,lt2不会跟着改变。
拷贝
如果lt2 是lt1的拷贝对象,lt1 内部的任何数据类型的元素变化,lt2内部的元素也会跟着变化。因为可变类型值变id不变。
浅拷贝
如果lt2是lt1的浅拷贝对象,lt1内部的不可变元素发生了变化,lt2不变,
如果lt1内部的可变元素发生了变化,lt2也跟着改变。
深拷贝
如果lt2是lt1的深拷贝对象,lt1内部的任何元素发生了变化,lt2不会跟着改变。
总结
存值个数
| 存值个数 | 数据类型 |
|---|---|
| 单个值 | 数字、字符串 |
| 多个值 | 列表、元组、字典、集合 |
有序 or 无序
| 有序 or 无序 | 数据类型 |
|---|---|
| 有序 | 字符串、列表、元组 |
| 无序 | 数字、字典、集合 |
可变 or 不可变
| 可变 or 不可变 | 数据类型 |
|---|---|
| 可变 | 列表、字典、集合 |
| 不可变 | 数字、元组、字符串 |
访问类型
| 访问类型 | 数据类型 |
|---|---|
| 直接访问 | 数字 |
| 顺序访问 | 字符串、列表、元组 |
| key值访问 | 字典 |
拷贝/浅拷贝/深拷贝 都是针对可变类型数据而言。
Python-数据类型内置方法(2)的更多相关文章
- python数据类型内置方法
内容概要 列表内置方法 字典内置方法 字符串转换成字典的方法 eval() 元组内置方法 元组相关笔试题 集合内置方法 列表内置方法 l1 = [2, 4, 5, 7, 3, 9, 0, 6] # 升 ...
- python数据类型内置方法 字符串和列表
1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- python循环与基本数据类型内置方法
今天又是充满希望的一天呢 一.python循环 1.wuile与else连用 当while没有被关键'break'主动结束的情况下 正常结束循环体代码之后会执行else的子代码 "" ...
- python中其他数据类型内置方法
补充字符串数据类型内置方法 1.移除字符串首尾的指定字符可以选择方向1: s1 = '$$$jason$$$' print(s1.strip('$')) # jason print(s1.lstrip ...
- python 字典内置方法get应用
python字典内置方法get应用,如果我们需要获取字典值的话,我们有两种方法,一个是通过dict['key'],另外一个就是dict.get()方法. 今天给大家分享的就是字典的get()方法. 这 ...
- python-字典数据类型内置方法
字典数据类型内置方法(必考) 用途:存多个值,不通过索引取值,可以用关键字找到对应得值 定义方式:{}内以key:value的方式存储多个值,值与值之间用逗号隔开 lis = ['ruixing', ...
- Python的内置方法,abs,all,any,basestring,bin,bool,bytearray,callable,chr,cmp,complex,divmod
Python的内置方法 abs(X):返回一个数的绝对值,X可以是一个整数,长整型,或者浮点数,如果X是一个复数,此方法返回此复数的绝对值(此复数与它的共轭复数的乘积的平方根) >>> ...
- while.for循环和基本数据类型内置方法
while循环补充说明 流程控制之for循环 基本数据类型内置方法 内容详细 1.死循环 真正的死循环是一旦执行,Cpu的功耗会急速上升 知道系统采取紧急措施 所以 尽量不要让cpu长时间不断运算. ...
- 【python基础】第11回 数据类型内置方法 02
本章内容概要 列表内置方法 字典内置方法 元组内置方法 集合内置方法 可变类型与不可变类型 本章内容详细 1.列表内置方法 list 列表在调用内置方法之后不会产生新的值 1.1 统计列表中的数据值的 ...
随机推荐
- Mysql 插入数据,随机事件选择
在拼写sql的 时候,mysql字段如果需要添加当前时间可以用NOW() 函数 // String sql = ("insert into tablename(content, create ...
- netty 文件传输
FileServer package com.zhaowb.netty.ch13_1; import io.netty.bootstrap.ServerBootstrap; import io.net ...
- [转]从客户端中检测到有潜在危险的 Request.Form 值。
参考资料: ASP.NET 4.0中使用FreeTextBox和FCKeditor遇到安全问题警告的解决办法关于问题出现的原因说的很清楚 引言 本人在.NET 4.0+VS2010环境下调试一个ASP ...
- coco2dx android package..
/Users/chong/Documents/engine/cocos2d-x-3.15.1/tools/cocos2d-console/bin/cocos compile -p android -m ...
- JS对象 Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的。数组的每一个成员对象都有一个“下标”,用来表示它在数组中的位置,是从零开始的
Array 数组对象 数组对象是一个对象的集合,里边的对象可以是不同类型的.数组的每一个成员对象都有一个"下标",用来表示它在数组中的位置,是从零开始的 数组定义的方法: 1. 定 ...
- Python|读、写Excel文件(三种模块三种方式)
python读写excel的方式有很多,不同的模块在读写的讲法上稍有区别: 用xlrd和xlwt进行excel读写: 用openpyxl进行excel读写: 用pandas进行excel读写: imp ...
- amaze UI(mark)
为移动而生 Amaze UI 以移动优先(Mobile first)为理念,从小屏逐步扩展到大屏,最终实现所有屏幕适配,适应移动互联潮流. 组件丰富,模块化 Amaze UI 含近 20 个 CSS ...
- react 实现类似vue中的<keep-alive>的功能,并解决antd-mobile切换回来时的空白
在移动端的spa页面中,只要使用到了路由就很有必要使用到状态保存的功能,这样才能保证在页面进行切换的时候,让用户可以看到刚才滑动的地方,让用户的体验更加友好.这儿我找到了react-router-ca ...
- oracle将查询结果横转纵
SELECT '残疾人|民政|综合治理|计划生育|物业监管|安全生产|环境类|司法信访|党建|社会组织|文化体育|社保' D , '53|52|51|50|49|48|47|5|4|3|2|1' g ...
- luoguP2580 于是他错误的点名开始了 [Trie]
题目背景 XS中学化学竞赛组教练是一个酷爱炉石的人. 他会一边搓炉石一边点名以至于有一天他连续点到了某个同学两次,然后正好被路过的校长发现了然后就是一顿欧拉欧拉欧拉(详情请见已结束比赛CON900). ...