python高级进阶

目录

一、str字符串

1. 字符串定义

2. 获取字符串中元素

3. 遍历字符串

4. 字符串常见操作

 二、set集合

1. 集合的创建

2. 遍历集合中的元素

3. 集合中添加元素

4. 集合删除元素

三、字典

1. 字典的定义

2. 字典的特点

3. 字典增删改查

4. 字典遍历

 四、slice切片

1. 切片简介

2. 切片的格式

3. 索引的正序和倒序

4. 步长为负数

五、推导式

1. 列表推导式 

2. 元组推导式

3. 集合推导式

4. 字典推导式


一、str字符串

字符串就是一串字符,是编程语言中表示文本的数据类型

1. 字符串定义

和列表一样 python中使用一对双引号单引号定义字符串

str = "hello"

2. 获取字符串中元素

通过索引获取

 str = "hello"

# 获取第2个元素 e

ele = str[1]

print(ele)

3. 遍历字符串

 str = "hello"

for i in str:

        print(i)        # h e l l o

4. 字符串常见操作

4.1 判断

方法

说明

isalpha()

如果 string 至少有一个字符并且所有字符都是字母则返回 True

isdecimal()

如果 string 只包含数字则返回 True

startwith(str)

检查字符串是否是以 str 开头,是则返回 True

endswith(str)

检查字符串是否是以 str 结束,是则返回 True

4.2 查找替换

方法

说明

find(str, start=0, end=len(string))

检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1

rfind(str, start=0, end=len(string))

类似于 find(),不过是从右边开始查找

replace(old_str, new_str, num=string.count(old))

返回一个新字符串,把 string 中的 old_str 替换成 new_str,如果 num 指定,则替换不超过 num 次

4.3 切割

方法

说明

split(str="", maxsplit)

返回列表,以 str 为分隔符拆分 string,如果 maxsplit 有指定值,则仅分隔 maxsplit + 1 个子字符串,str 默认包含\r, \t, \n空格

4.4 去空白

方法

说明

strip()

返回新字符串,截掉 string 左右两边的空白字符(可以指定截掉的字符)

 二、set集合

set集合是无序的,并且它的元素是唯一的。

1. 集合的创建

s = {'张三','李四','王五'}

# 集合是无序的

print(s)        #  {'王五', '张三', '李四'}

# 集合元素唯一

s = {'张三','李四','王五','张三'}
print(s)        #  {'李四', '张三', '王五'}

2. 遍历集合中的元素

s = {'张三','李四','王五'}
# 遍历集合
for ele in s:
    print(ele)

3. 集合中添加元素

s = {'张三','李四','王五'}
# # 添加赵六 add
s.add('赵六')

4. 集合删除元素

remove 删除 如果有 直接删除 如果没有 程序报错

s = {'张三','李四','王五'}
# 删除张三 
s.remove('张三')

pop 删除 随机删除元素 如果没有元素 程序报错

s = {'张三','李四','王五'}
# pop 随机删除
print(s.pop())

discard 删除,元素存在则直接删除,不存在,不做任何操作

s = {'张三','李四','王五'}
# discard 删除元素 如果元素不存在,不做任何处理
s.discard('林青霞')

三、字典

dictionary(字典)是除列表以外Python之中最灵活的类型,类型为dict

字典同样可以用来存储多个数据

字典使用键值对存储数据

1. 字典的定义

字典用{}定义

键值对之间使用 ,分割

键和值之间使用 : 分割

d = {'中国':'China','英国':'England','美国':'America'}

2. 字典的特点

字典中的相当于索引,必须是唯一的

d = {'中国':'China','英国':'England','美国':'America','美国':'USA'}
print(d)        # {'中国': 'China', '英国': 'England', '美国': 'USA'}

3. 字典增删改查

3.1 增加

d = {'中国':'China','英国':'England','美国':'America'}
# 添加 法国
d['法国'] = 'France'

也可以通过setdefault方法添加

d.setdefault('法国','France')

3.2 删除

通过del 删除

d = {'中国':'China','英国':'England','美国':'America'}
# 删除美国 如果键不在字典中,会报错
del d['法国']

通过pop删除

# pop 删除元素 并且返回删除元素的值 如果删除不存在会报错
result = d.pop('法国')

清空字典

# 清空容器中的数据  还可以继续使用
d.clear()

3.3 修改

d = {'中国':'China','英国':'England','美国':'America'}
# 修改美国
d['美国'] = 'USA'

3.4 查询 

d = {'中国':'China','英国':'England','美国':'America'}
# 查找中国
value = d['中国']
print(value)

4. 字典遍历

4.1 for循环遍历所有键值对

d = {'中国':'China','英国':'England','美国':'America'}

for ele in d:
    print(ele,d[ele])

# 结果

中国 China
英国 England
美国 America

4.2 遍历所有的键

d = {'中国':'China','英国':'England','美国':'America'}
for key in d.keys():
    print(key)

# 结果

中国
英国
美国

4.3 遍历所有的值

d = {'中国':'China','英国':'England','美国':'America'}

for value in d.values():
    print(value)

# 结果

China
England
America

4.4 遍历所有的键值对

d = {'中国':'China','英国':'England','美国':'America'}
for key,value in d.items():
    print(key,value)

# 结果

中国 China
英国 England
美国 America

 四、slice切片

1. 切片简介

取一个strlisttuple的部分元素是非常常见的操作

  • 切片 译自英文单词slice,指的是一部分
  • 切片 根据 步长step 从原序列中取出一部分元素组成新序列
  • 切片适用于 字符串、列表、元组

2. 切片的格式

字符串[开始索引:结束索引:步长]

包含开始索引, 不包含结束索引

string = '中华人民共和国欢迎您'
获取前三个文字

newStr = string[0:3:1]        # 中国人

步长默认为1,可以省略,如下

newStr = string[0:3]

开始索引为0,可以省略,如下

newStr = string[:3]

如果到末尾结束,可以省略结束索引,例如取后三个字“欢迎您

newStr = string[7:]

3. 索引的正序和倒序

索引分为正序和倒序

  • 正序:从左向右,0开始
  • 倒序:从右向左,-1开始

ss = "中华人名共和国欢迎您"
需求:把字符串中从第一个到倒数第二个(不包含)打印出来

# 开始位置:正序  结束位置:倒序
print(ss[:-2]) 

4. 步长为负数

步长也可以为负数,代表逆序切片

ss = "中华人名共和国欢迎您"
把从角标为2到7(包含)倒序打印出来

# 欢国和共名人
print(ss[7:1:-1])

五、推导式

推导式指的是轻量级循环创建数据的方式,对列表或可迭代对象中的每个元素应用某种操作,用生成的结果创建新的列表;或用满足特定条件的元素创建子序列。

推导式包括:

  • 列表推导式
  • 元组推导式
  • 集合推导式
  • 字典推导式

1. 列表推导式 

格式:[计算公式 for循环 if判断]

通过列表推导式快速创建[1, 11]所有数字的列表

lst = [ele for ele in range(1, 11)]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

通过列表推导式快速创建[1, 11]所有偶数的列表

lst = [ele for ele in range(1, 11) if ele % 2 == 0]

# [2, 4, 6, 8, 10]

通过列表推导式快速创建[1, 11)所有偶数的平方的列表

lst = [ele ** 2 for ele in range(1, 11) if ele % 2 == 0]
# [4, 16, 36, 64, 100]

2. 元组推导式

元组推导式的格式:(计算公式 for循环 if判断),其他与列表推导式一致

tp  =(ele for ele in range(1, 11))

3. 集合推导式

集合推导式的格式:{计算公式 for循环 if判断},其他与列表推导式一致

s = {ele for ele in range(1, 11)}

4. 字典推导式

d = {key:value for key, value in zip(range(1,10),range(21,30))}

zip(..., ...)range(1,10)range(21,30)里的每个元素一一组合成元组,再把这些元组打包成一个可迭代对象。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/2849.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【经验总结】Ubuntu 源代码方式安装 Microsoft DeepSpeed

1. 背景介绍 使用 DeepSpeed 在多服务器上分布式训练大模型 2. 安装方法 2.1 查看显卡参数 ~$ CUDA_VISIBLE_DEVICES0 python -c "import torch; print(torch.cuda.get_device_capability())" (8, 0) ~$ CUDA_VISIBLE_DEVICES0 python -c "import torch; pr…

python常见语法

变量赋值: my_var 10 基本数据类型: 整数(int)、浮点数(float)、字符串(str)、布尔值(bool)、列表(list)、元组(tuple&…

代码随想录第三十天|无重叠区间| 划分字母区间| 合并区间

今天三道都是重叠区间问题,重叠区间问题第一步就是先对数组进行排序,才能进行后续操作。 无重叠区间 这一题和昨天的最少多少支箭射爆气球的解法是相同的,判断相邻区间是否重叠,若两个区间重叠了则找出重叠区间最小右边界&#…

怎样用PHP语言实现远程控制三路开关

怎样用PHP语言实现远程控制三路开关呢? 本文描述了使用PHP语言调用HTTP接口,实现控制三路开关,三路开关可控制三路照明、排风扇等电器。 可选用产品:可根据实际场景需求,选择对应的规格 序号设备名称厂商1智能WiFi墙…

C++:模板(初级)

hello,各位小伙伴,本篇文章跟大家一起学习《C:模板(初级)》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 如果本篇文章对你有帮助,还请各位点点赞…

Docker容器搭建Hadoop集群(hadoop-3.1.3)

Docker容器环境下搭建Hadoop集群(完全分布式) hadoop版本为hadoop-3.1.3 (1)安装额外的速度较快的镜像库 yum install -y epel-release (2)安装同步工具,方便在多台服务器上进行文件的传输 …

Oracle Hint 语法详解

什么是Hint Hint 是 Oracle 提供的一种 SQL 语法,它允许用户在 SQL 语句中插入相关的语法,从而影响 SQL 的执行方式。 因为 Hint 的特殊作用,所以对于开发人员不应该在代码中使用它,Hint 更像是 Oracle 提供给 DBA 用来分析诊断问…

从零学算法377

377. 组合总和 Ⅳ 给你一个由 不同 整数组成的数组 nums ,和一个目标整数 target 。请你从 nums 中找出并返回总和为 target 的元素组合的个数。 题目数据保证答案符合 32 位整数范围。 示例 1: 输入:nums [1,2,3], target 4 输出&#xff…

【操作系统】进程同步(水果盘问题)使用Python多线程threading实现

一、进程同步(水果盘问题) 1、吃水果问题:桌子有一只盘子,只允许放一个水果,父亲专向盘子放苹果,母亲专向盘子放桔子 儿子专等吃盘子的桔子,女儿专等吃盘子的苹果。只要盘子为空,父…

QA测试开发工程师面试题满分问答20: 软件的安全性应从哪几个方面去测试?

软件的安全性测试应从多个方面进行,并确保覆盖以下关键方面: 当回答问题时,可以根据自己的经验和知识,从上述要点中选择适合的方面进行详细说明。强调测试的综合性、全面性和持续性,并强调测试的重要性以及如何与开发团…

IDEA最好用插件推荐

1 背景 俗话说:“工欲善其事必先利其器”,本问介绍几款强大实用的 IDEA 插件,助力大家开发。 希望大家做一个聪明又努力的人,而不只是一个努力的人。 以下插件大都可以通过 IDEA 自带的插件管理中心安装,如果搜不到可以…

python字典和集合

字典(Dictionary) 键值对:字典存储键值对(key-value pairs),其中键(key)是唯一的,而值(value)可以是任何数据类型。可变:字典是可变的…

恶补《操作系统》2_1——王道学习笔记

2操作系统-进程 2.1_1 进程的定义、组成、组织方式、特征 组成:PCB(进程存在唯一的标志),程序段,数据段 组织方式:链接方式,指针指向不同的队列;索引方式,索引表 特征…

Uptime Kuma 使用指南:一款简单易用的站点监控工具

我平时的工作会涉及到监控,而站点是一个很重要的监控项。项目上线后,我们通常会将站点监控配置到云平台上,以检测各站点的连通性。但随着项目不断增多,云平台上的配额就有点捉急了。针对这个情况,我们可以试试这个开源…

使用H5+app在安卓5.1离线环境实现文字转语音

在Vue中实现中文文字转语音的方法可以使用HTML5的SpeechSynthesis API,同时需要考虑到在H5+ App里面的离线环境。 在配置文件中正确引入plus库: <script src="http://www.dcloud.io/helloh5plus/api.js"></script> 在Vue组件中使用SpeechSynthesi…

设计模式——状态模式19

状态模式是一种行为设计模式&#xff0c; 允许一个对象在其内部状态改变时改变它的行为&#xff0c;对象看起来好像修改了它的类。状态模式的核心是状态与行为绑定&#xff0c;不同的状态对应不同的行为。 设计模式&#xff0c;一定要敲代码理解 状态行为抽象 //在某种状态下&…

【网安小白成长之路】9.sql注入操作

&#x1f42e;博主syst1m 带你 acquire knowledge&#xff01; ✨博客首页——syst1m的博客&#x1f498; &#x1f51e; 《网安小白成长之路(我要变成大佬&#x1f60e;&#xff01;&#xff01;)》真实小白学习历程&#xff0c;手把手带你一起从入门到入狱&#x1f6ad; &…

SpringBoot整合七牛云实现图片的上传管理

唠嗑部分 各位小伙伴大家好&#xff0c;我是全栈小白&#xff0c;今天我们来分享一下SpringBoot如何整合七牛云存储实现图片的上传与存储 首先我们来说说图片存储&#xff0c;在项目中图片几乎是必不可少的&#xff0c;那么大家会选择怎样存储呢&#xff0c;当然有几种方案 …

XiaodiSec day027 Learn Note 小迪安全学习笔记

XiaodiSec day027 Learn Note 小迪安全学习笔记 记录得比较凌乱&#xff0c;不尽详细 27day 还是 sql 知识点 数据类型注入&#xff1a; 数字型&#xff0c;字符型&#xff0c;搜索型&#xff0c;加密型 开始 数字型 数字型是 0-9 字符型 字符型是 a-z 等 在接收 sql …

Science Robotics 美国斯坦福大学研制了外行星洞穴探测机器人

月球和火星上的悬崖、洞穴和熔岩管已被确定为具有地质和天体生物学研究理想地点。由于其隔绝特性&#xff0c;这些洞穴提供了相对稳定的条件&#xff0c;可以促进矿物质沉淀和微生物生长。在火星上&#xff0c;这些古老的地下环境与火星表面可能适合居住时几乎没有变化&#xf…