接上篇Python 数据类型常用的内置方法(二)

Python 数据类型常用的内置方法(三)

1、列表内置方法

1、sort():升序

  • 搭配参数:reverse=True # 参数为True,升序变降序

实例如下:

lst = [2, 111, 3, 222, 11, 1, 22, 33, 333]
#升序操作
lst.sort()
print(lst)
#降序操作
lst.sort(reverse=True)
print(lst) #结果
[1, 2, 3, 11, 22, 33, 111, 222, 333]
[333, 222, 111, 33, 22, 11, 3, 2, 1]

2、reverse():颠倒顺序

  • 功能相当于列表索引步长为-1

实例如下:

lst1 = [1, 2, 3, 4, 5, 6, 7]
# 颠倒顺序
lst1.reverse()
print(lst1)
lst1 = [1, 2, 3, 4, 5, 6, 7]
# 步长取-1功能相当于reverse()
print(lst1[::-1]) #结果
[7, 6, 5, 4, 3, 2, 1]
[7, 6, 5, 4, 3, 2, 1]

3、列表比较运算

  • 列表比较运算采用相同索引元素比较,只要有一个比出了结果,程序结束

实例如下:

lst2 = [333, 444, 555]
lst3 = [111, 999, 999999, 1, 2, 3]
# 只比较了第一个元素,333>111,程序结束
print(lst2 < lst3) #结果
False

2、字典内置方法

python字典你值得拥有!

1、对Key的操作

  • 按K取值:K不存在会直接报错
  • 按K修改值:K存在就修改值,K不存在就新增键值对。

实例如下:

#1、按K取值
dic = {"name": "HammerZe", "age": 18, "hobby": "study python"}
print(dic['name'],dic['age'],dic['hobby'])
#结果
HammerZe 18 study python #K不存在,报错的情况
print(dic['nixx'])
#结果
KeyError: 'nixx' #2、按K修改值
# 1、按K取值
dic = {"name": "HammerZe", "age": 18, "hobby": "study python"}
# k存在的情况,为修改值
dic['hobby'] = 'play game'
print(dic)
# k不存在的情况,为添加值
dic['sex'] = 'man'
print(dic) #结果
{'name': 'HammerZe', 'age': 18, 'hobby': 'play game'}
{'name': 'HammerZe', 'age': 18, 'hobby': 'play game', 'sex': 'man'}

2、len( )--统计键值对个数

  • 统计字典内部键值对的个数

实例如下:

# len()统计键值对个数
dic = {"name": "HammerZe", "age": 18, "hobby": "study python"}
print(len(dic)) #结果
3

3、成员运算

  • 成员运算对Key操作,默认暴露Key

实例如下:

dic = {"name": "HammerZe", "age": 18, "hobby": "study python"}
#in运算
print('age' in dic)
#not in 运算
print('name' not in dic)
#name 和 age键都在字典里
#结果
True
False

4、删除元素

  • 根据key名用del删除
  • pop方法弹出
  • popitem方法弹出

实例如下:

dic = {'name': 'HammerZe', 'age': 18,
'hobby': 'study python', 'sex': 'man'}
# 根据Key删除,'sex'
del dic['sex']
print(dic) # pop方法弹出'age',打印可以输出value
# dic.pop('age')
print(dic.pop('age'))
print(dic) # popitem方法
dic = {'name': 'HammerZe', 'age': 18,
'hobby': 'study python', 'sex': 'man'}
# dic.popitem()
print(dic.popitem()) # 输出弹出的内容为元组,前面是key后面为value
print(dic)

5、get()方法 --获取V值

  • get()括号内写key
  • get()获取值,如果key不存在,不会报错,返回None,对比字典内置方法1中的对Key操作,如果键不存在会报错。
  • get()搭配参数有:get(‘key’,’value’),第二个参数,可以在k不存在的时候自定义信息

实例如下

dic = {'name': 'HammerZe', 'age': 18,
'hobby': 'study python', 'sex': 'man'}
# 按key取值
print(dic.get('name'))
# 按key取值,key不存在的情况,返回None
print(dic.get('height'))
# 搭配两个参数使用,k存在的情况,不会根据后面的值变动,返回原来的值
print(dic.get('age', 11)) # 这里赋值11不会改变原来的值
# 搭配两个参数使用,k不存在的情况,自定义信息
print(dic.get('weight', 140)) # 输出信息
print(dic)

6、keys( )、values( )、items( )

  • 在python2中是列表,在python3中是迭代器

  • keys获取字典的所有键,看成列表
  • values获取字典的所有值,看成列表
  • items获取字典的所有键值对,结果为列表套元组的形式,元组内第一个为key,第二个为value

实例如下:

dic = {'name': 'HammerZe', 'age': 18,
'hobby': 'study python', 'sex': 'man'}
# 获取所有键
print(dic.keys())
# 获取所有值
print(dic.values())
# 获取所有键值对
print(dic.items()) #结果
dict_keys(['name', 'age', 'hobby', 'sex'])
dict_values(['HammerZe', 18, 'study python', 'man'])
dict_items([('name', 'HammerZe'), ('age', 18), ('hobby', 'study python'), ('sex', 'man')])

7、update --更新字典

  • 键存在则修改,不存在则创建

  • 对比方法1中对key操作

实例如下:

# k不存在的情况,为添加值
dic['sex'] = 'man'
print(dic)
#区分上面 #update更新字典
dic = {'name': 'HammerZe', 'age': 18,
'hobby': 'study python', 'sex': 'man'}
# key 存在的情况,修改值
dic.update({'name':'Ze'})
print(dic)
# key 不在的情况,添加键值对
dic.update({'height':'189'})
print(dic) #结果
{'name': 'Ze', 'age': 18, 'hobby': 'study python', 'sex': 'man'}
{'name': 'Ze', 'age': 18, 'hobby': 'study python', 'sex': 'man', 'height': '189'}

8、fromkeys --初始化字典

  • formkeys()方法格式:dict.fromkeys(seq[,value])
  • seq - 字典键值列表
  • value - 可选参数,设置键序列(seq)对应的值,默认为None

实例如下:!!面试笔试题

#没有设置第二个参数的情况
dic = dict.fromkeys(['k1','k2','k3'],[])
print(dic)
dic1 = dict.fromkeys(range(5))
print(dic1) #结果
{'k1': [], 'k2': [], 'k3': []}
{0: None, 1: None, 2: None, 3: None, 4: None} # 设置第二个参数的情况
dic2 = dict.fromkeys(range(5),'python')
print(dic2) #结果
{0: 'python', 1: 'python', 2: 'python', 3: 'python', 4: 'python'}

3、元组内置方法

1、类型转换

  • 能够支持for循环的数据都可以转换成元组
  • for循环可迭代的对象:字符串,列表,字典,元组,集合

实例如下:

# print(tuple(1))  #整型不能转换
# print(tuple(1.234)) # 整型不能转换
print(tuple('python')) # 字符串可以转换
# 结果
# ('p', 'y', 't', 'h', 'o', 'n') print(tuple([1, 2, 3, 4, 5])) # 列表可以转换
# 结果
# (1, 2, 3, 4, 5) print(tuple({"name":"HammerZe"})) # 字典可以转换,输出key
# 结果
# ('name',) print(tuple({1,2,3,4})) # 集合可以转换
# 结果
# (1, 2, 3, 4)

注意!!,容器类型存储数据的时候建议在元素末尾添加逗号

  • 容器类型定义:内部可以存放多个值的数据类型

实例如下:

tup = (1,)
set = {1,}
dic = {'name':'',}
print(type(tup),type(set),type(dic))
#结果
<class 'tuple'> <class 'set'> <class 'dict'>

2、索引

  • 和字符串、列表一样按下标取值

实例如下:

tup = (1, 2, 3, 4, 5, 6, 7)
#正向索引
print(tup[0])
#负向索引
print(tup[-1]) #结果
1
7

3、切片

实例如下:

(1, 2, 3, 4, 5, 6, 7)
(1, 3, 5)
(7, 6, 5, 4, 3, 2, 1)tup = (1, 2, 3, 4, 5, 6, 7)
print(tup[0:7])
print(tup[0:-1:2])
print(tup[::-1]) #结果
(1, 2, 3, 4, 5, 6, 7)
(1, 3, 5)
(7, 6, 5, 4, 3, 2, 1)

4、len()统计元素个数

实例如下:

tup = (1, 2, 3, 4, 5, 6, 7)
print(len(tup))
#结果
7

5、count()统计元素出现的次数

实例如下:

tup = (1, 1, 2, 2, 22, 333, 44, 4, 4, 4,)
print(tup.count(4))
#结果
3

6、元组易错题

元组为只读列表,即数据可以被查询,但不能被修改,但是我们可以在元组的元素中存放一个列表,这样就可以改变元组内部存储的值,但元组还是不可变类型,改变的只是元组内的列表。

实例如下:

tup = (1, 2, 3, [4, 5, 6])
print(id(tup), type(tup))
# 追加元素到元组内部的列表
tup[3].append(7)
# 结果
print(tup,id(tup),type(tup))
'''查看id发现并没有改变,
和不可变类型的定义相反,
但是改变的是列表的值,
列表的地址没有改变,
列表在元组中的地址的值没有改变,
所以也就意味着元组没有发生变化'''

4、集合内置方法

  • 去重操作
  • 关系运算

1、去重

实例如下:

# 定义一个无序列表
s1 = {1, 4, 7, 8, 5, 2, 3, 9, 96, 2}
# 输出的结果也是无序的
print(s1) #结果
{96, 1, 2, 3, 4, 5, 7, 8, 9}

2、关系运算


符号 字符 功能
| union 并集
& intersection 交集
- difference 差集
^ symmetric_difference 对称差集
> />= issubset 子集

实例如下:

符号和方法名两种演示方法:

# 定义一个无序列表
s1 = {1, 2, 3, 5, 6}
s2 = {1, 2, 3, 4, 7, 8}
# 并集
print(s1.union(s2))
print(s1 | s2)
# 交集
print(s1.intersection(s2))
print(s1 & s2)
# 差集
print(s1.difference(s2))
print(s1 - s2)
# 对称差集
print(s1.symmetric_difference(s2))
print(s1^s2)
#子集
print(s1.issubset(s2))
print(s1<s2) #结果
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3, 4, 5, 6, 7, 8}
{1, 2, 3}
{1, 2, 3}
{5, 6}
{5, 6}
{4, 5, 6, 7, 8}
{4, 5, 6, 7, 8}
False
False

持续更新中,求关注···

Python 数据类型常用的内置方法(三)的更多相关文章

  1. Python 数据类型常用的内置方法(一)

    目录 Python 数据类型常用的内置方法 1.整型 int 2.浮点型 float 字符串转浮点型: 3.字符串 str 多种类型转字符型: 索引 切片 len( )方法:统计字符串长度/个数 移除 ...

  2. Python 数据类型常用的内置方法(二)

    目录 Python 数据类型常用的内置方法(二) 1.字符串类型常用内置方法 1.upper.lower.isupper.islower 2.startswith.endswith 3.format ...

  3. 列表、enumerate()函数,以及查看数据类型所有的内置方法

    随便看看 """ forList(): 测试list和enumerate()函数 examineFun(): 查看数据类型所有的内置方法 ""&quo ...

  4. python面向对象 : 反射和内置方法

    一. 反射 1. isinstance()和issubclass() isinstance( 对象名, 类名) : 判断对象所属关系,包括父类  (注:type(对象名) is 类名 : 判断对象所属 ...

  5. 《Python》反射、内置方法(__str__,__repr__)

    一.反射 通过字符串的形式操作对象相关的属性.(使用字符串数据类型的变量名来获取这个变量的值) Python中的一切事物都是对象(都可以使用反射) 反射类中的变量 反射对象中的变量 反射模板中的变量 ...

  6. python今日分享(内置方法)

    目录 一.习题详解 二.数据类型的内置方法理论 三.整型相关操作 四.浮点型相关操作 五.字符串相关操作 六.列表相关操作 今日详解 一.习题详解 1.计算1-100所有数据之和 all_num = ...

  7. python基础之反射内置方法元类

    补充内置函数 isinstance(obj,Foo)   # 判断obj是不是foo的实例 issubclass()      # 判断一个类是不是另一个类的子类 反射 什么是反射? 通过字符串来操作 ...

  8. Python面向对象编程及内置方法

    在程序开发中,要设计一个类,通常需要满足以下三个要求: [1]类名 这类事物的名字,满足大驼峰命名法 [2]属性 这类事物具有什么样的特征 [3]方法 这类事物具有什么样的行为 定义简单的类: 定义只 ...

  9. python中字符串的内置方法

    这里说的是字符串中的内置方法,毕竟字符串是最常用的操作对象. ['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '_ ...

随机推荐

  1. spring boot处理跨域请求代码

    @Configuration @WebFilter(filterName = "CorsFilte") public class CorsFilter implements Fil ...

  2. 【C++ Primer Plus】编程练习答案——第7章

    1 double ch7_1_harmonicaverage(double a, double b) { 2 return 2 / (1 / a + 1 / b); 3 } 4 5 void ch7_ ...

  3. MySQL技术专题(X)该换换你的数据库版本了,让我们一同迎接8.0的到来哦!(初探篇)

    前提背景 MySQL关是一种关系数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用的标准化语言,其特点为体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,在 Web应用方面 MySQ ...

  4. 服务注册中心之Eureka使用

    一.Eureka基础 Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的.SpringCl ...

  5. 开放下载!2021 解锁 Serverless 从入门到实战大“橙”就

    Serverless 架构即将引领云计算的下一个十年已成行业共识.处于变革中的开发者,大多已从观望状态转向尝试阶段, 越来越多 Serverless 落地场景被解锁. "Serverless ...

  6. HTML5元素背景知识

    目录 HTML5元素背景知识 语义与呈现分离 元素选用原则 少亦可为多 别误用元素 具体为佳,一以贯之 对用户不要想当然 元素说明体例 ol元素 元素速览 文档和元数据元素 文档和元数据元素 文本元素 ...

  7. .NET下使用ufun函数取CAM操作的进给速度

    UF_PARAM_ask_subobj_ptr_value,这个函数在封装的时候,给了很大一个坑啊. NXOpen.UF.UFParam.AskSubobjPtrValue(ByVal param_t ...

  8. C# 如何使用代码添加控件及控件事件

    1.首先简单设计一下界面: 添加了Click事件 <Window x:Class="WpfApp.MainWindow" xmlns="http://schemas ...

  9. Java:关于 CAS 笔记

    Java:关于 CAS 笔记 本笔记是根据bilibili上 尚硅谷 的课程 Java大厂面试题第二季 而做的笔记 1. CAS 底层原理 概念 CAS 的全称是 Compare-And-Swap,它 ...

  10. 记一次 .NET 某资讯论坛 CPU爆高分析

    大概有11天没发文了,真的不是因为懒,本想前几天抽空写,不知道为啥最近求助的朋友比较多,一天都能拿到2-3个求助dump,晚上回来就是一顿分析,有点意思的是大多朋友自己都分析了几遍或者公司多年的牛皮藓 ...