Python - 数据容器str(字符串)

简介: Python - 数据容器str(字符串)

字符串的定义

和其它容器如:列表、元组一样,字符串也可以通过下标进行访问

从前向后,下标从0开始 ;从后向前,下标从-1开始

值得注意的是同元组一样,字符串是一个:无法修改的数据容器。所以有关字符串的任何修改操作都是错误的;

如果必须要做,只能得到一个新的字符串,旧的字符串是无法修改

字符串的常用操作

查找特定字符串的下标索引值 index

my_str="ab cde fg 123"
num="0123456789"
print(my_str.index("fg"))

7

字符串的替换 replace

  • 语法:字符串.replace(字符串1,字符串2)      
  • 功能:将字符串内的全部:字符串1,替换为字符串2      
  • 注意:不是修改字符串本身,而是得到了一个新字符串
my_str="about above"
new_str=my_str.replace("ab","AB")
print(my_str)
print(new_str)

about above

ABout ABove

字符串本身并没有发生变化,而是得到了一个新字符串

字符串的分割 split

  • 语法:字符串.split(分隔符字符串)      
  • 功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中      
  • 注意:字符串本身不变,而是得到了一个列表对象
my_str="about above    abandon abject"
new_str=my_str.split(" ")
print(my_str)
print(new_str)
print(type(new_str))

about above    abandon abject

['about', 'above', '', '', '', 'abandon', 'abject']

<class 'list'>


可见,字符串按照给定的 <空格>进行了分割,变成多个子字符串,并存入一个列表对象中


值得注意的是,如果存在连续的分割符,会将所有的分割符去除,除第一个分割符外,其余n-1分割符生成n-1个空字符串(若分割符在第一个,则第一个分割符也生成空串)

my_str1="a"
my_str2="abaac"
new_str1=my_str1.split("a")
new_str2=my_str2.split("a")
print(new_str1)
print(new_str2)

['', '']

['', 'b', '', 'c']


字符串的规整操作 strip

语法:字符串.strip()(去前后空格与转行符)

my_str="    about above    abandon abject  "
new_str=my_str.strip()
print(my_str)
print(new_str)

   about above    abandon abject  

about above    abandon abject

语法:字符串.strip(字符串) (去前后指定字符串)

my_str="6a 1234567890 6a66baaab6a66ba6b"
new_str=my_str.strip("6ab")
print(my_str)
print(new_str)

6a 1234567890 6a66baaab6a66ba6b

1234567890

将前后含有字符串内容的字符去除,以不在字符串中的任意字符为分隔

统计字符串中某字符串的出现次数 count

my_str="about above abandon abject"
new_str=my_str.count("ab")
print(my_str)
print(new_str)
print(type(new_str))

about above abandon abject

4

<class 'int'>


每个字符只能算一次

my_str="a6aa6aa6aa"
new_str=my_str.count("a6aa")
print(my_str)
print(new_str)

a6aa6aa6aa

2

统计字符串的长度 len

数字(1、2、3...)

字母(abcd、ABCD等)

符号(空格、!、@、#、$等)

中文(文字和符合)

都算1个字符长度

 my_str="123#$%^wdkj哈哈是 ~!、E(?/"
 print(len(my_str))

22

字符串切片 [起始下标:结束下标:步长]

切片:从一个序列中,取出一个子序列

语法:序列[起始下标:结束下标:步长]

此操作不会影响序列本身,而是会得到一个新的序列(列表、元组、字符串)


起始下标与结束下标为左闭右开区间  [左,右) #注意不是[始,末)

my_str="0123456789"
print(my_str[:])#从头开始,到最后结束,步长1
print(my_str[1:5:1])#下标1开始,下标5(不含)结束,步长1
print(my_str[:4:2])#从头开始,到下标4(不含)结束,步长2
print(my_str[::2])#从头开始,到最后结束,步长2
print(my_str[::-1])#从头(最后)开始,到尾结束,步长-1(倒序)
print(my_str[6:1:-1])#从下标6开始,到下标1(不含)结束,步长-1(倒序)
print(my_str[:1:-2])#从头(最后)开始,到下标1(不含)结束,步长-2(倒序)

0123456789

1234

02

02468

9876543210

65432

9753

image.png

相关文章
|
14天前
|
存储 算法 数据库
使用python hashlib模块给明文字符串加密,以及如何撞库破解密码
`hashlib` 是 Python 中用于实现哈希功能的模块,它可以将任意长度的输入通过哈希算法转换为固定长度的输出,即散列值。该模块主要用于字符串加密,例如将用户名和密码转换为不可逆的散列值存储,从而提高安全性。`hashlib` 提供了多种哈希算法,如 `md5`、`sha1`、`sha256` 等。
32 1
|
14天前
|
安全 网络安全 数据安全/隐私保护
云原生技术探索:容器化与微服务架构的实践之路网络安全与信息安全:保护数据的关键策略
【8月更文挑战第28天】本文将深入探讨云原生技术的核心概念,包括容器化和微服务架构。我们将通过实际案例和代码示例,展示如何在云平台上实现高效的应用部署和管理。文章不仅提供理论知识,还包含实操指南,帮助开发者理解并应用这些前沿技术。 【8月更文挑战第28天】在数字化时代,网络安全和信息安全是保护个人和企业数据的前线防御。本文将探讨网络安全漏洞的成因、加密技术的应用以及提升安全意识的重要性。文章旨在通过分析网络安全的薄弱环节,介绍如何利用加密技术和提高用户警觉性来构建更为坚固的数据保护屏障。
|
11天前
|
监控 安全 网络安全
|
11天前
|
UED Python
探索Python中的魔法方法:打造自定义字符串表示
【8月更文挑战第31天】在Python的世界里,魔法方法是那些以双下划线开头和结尾的特殊方法,它们为类提供了丰富的功能。本文将带你走进这些魔法方法的背后,特别是__str__和__repr__,揭示如何通过它们来定制我们的对象在被打印或转换为字符串时的外观。我们将从基础用法开始,逐步深入到高级技巧,包括继承与重写,最终实现一个优雅的字符串表示方案。准备好了吗?让我们开始这段代码之旅吧!
|
13天前
|
索引 Python
如何在 Python 中修改字符串
【8月更文挑战第29天】
10 0
|
14天前
|
Python Windows Perl
python 字符串前加r b u f 含义
python 字符串前加r b u f 含义
22 0
|
14天前
|
Python
Python删除 字符串中的\的方法
这篇文章介绍了如何在Python中使用`replace`方法删除字符串中的特定字符,如制表符(`\t`)、空格(` `)以及其他指定字符,同时指出这种方法返回的是新字符串,不会改变原始字符串。
|
14天前
|
Cloud Native 持续交付 Docker
云原生之旅:Docker容器化实战指南
【8月更文挑战第29天】本文将引领你进入云原生技术的世界,以Docker容器化为切入点,深入浅出地介绍如何利用Docker进行应用的打包、部署及管理。我们将通过实际代码示例,一步步展示Docker镜像的构建过程,以及如何运行和管理这些容器。无论你是初学者还是有一定经验的开发者,都能从中获得宝贵的知识和实操经验。
|
9天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
9天前
|
应用服务中间件 nginx Docker
Docker同一台宿主机容器通信-通过容器名称互联
本文详细介绍了如何通过容器名称实现同一宿主机上容器间的互联,并提供了实战案例。首先,文章解释了容器间通过自定义名称访问的原理,随后演示了创建并连接Tomcat与Nginx容器的具体步骤。此外,还讨论了配置中可能出现的问题及解决方案,包括避免硬编码IP地址和使用自定义容器别名来增强系统的灵活性与可维护性。通过这些实践,展示了如何高效地配置容器间通信,确保服务稳定可靠。
16 1
Docker同一台宿主机容器通信-通过容器名称互联