Python系列之字符串和列表

news2024/11/19 14:27:26

            感谢点赞和关注 ,每天进步一点点!加油!

目录

一、字符串

1.1 字符串的定义与输入

1.2 字符串的拼接与格式化输出

1.3 字符串的下标

1.4 字符串的切片和倒序

1.5 字符串的常见操作

二、列表-List

2.1 列表的常见操作

2.2 列表合并和拼接

2.3 列表嵌套

三、元组-Tuple

四、字典-Dictionary


一、字符串


1.1 字符串的定义与输入


在python中,用引号引起来的都是字符串。还有input函数输入的, str()函数转换的等。

string1 = "hello"
string2 = 'hello'
string3 = """hello
python"""
string4 = '''hello
world'''
string5 = input("input anything: ")
string6 = str(18)

print(isinstance(string3, str)) # isinstance函数可以用来判断数据是否为某一个数据类型,返回值为True或False

执行结果:

1.2 字符串的拼接与格式化输出


示例:

name = "张三丰"
age = 95

# print("name,你五年后age+5岁了")	
print(name+",你五年后 " + str(age + 5) + " 岁了")

print("%s,你五年后 %d 岁了" % (name, age + 5))

执行结果:

1.3 字符串的下标


字符串,列表,元组都属于==序列==(sequence),所以都会有下标。

什么是下标(index)?

示例: 将字符串遍历打印

str1 = "kang"

# index 从 0 开始
for index, i in enumerate(str1):
    print("第 %d 个字符是 %s. " % (index, i))
print("++++++++++++++++++++")
# index 从 1
for index, i in enumerate(str1):
    print("第 %d 个字符是 %s. " % (index+1, i))
print("++++++++++++++++++++")
index = 0
for i in str1:
    print("第 %d 个字符是 %s. " % (index+1, i))
    index += 1

执行结果:

1.4 字符串的切片和倒序


示例:

str2 = "kangLH"

# 倒序 HLgnak
print(str2[::-1])
# 输出:gn
print(str2[3:1:-1])
# 输出:ang
print(str2[1:4])

执行结果:

1.5 字符串的常见操作


示例:

str1 = "hadoop kafka hive range hbase azkaban"

# 拆分 
a = str1.split(" ")
num = 0
for i in a:
    print(num, i, end="\t") # 拆分的字符串打印
    for index in i:
        print(index, end=", ") # 拆分字符串的字符打印
    num += 1
    print()


print(len(str1))		        # 调用len()函数来算长度	             (常用)
print(str1.__len__())			# 使用字符串的__len__()方法来算字符串的长度

print(str1.capitalize())		# 整个字符串的首字母大写
print(str1.title())		        # 每个单词的首字母大写
print(str1.upper())			# 全大写
print(str1.lower())	        	# 全小写
print("HAHAhehe".swapcase())	# 字符串里大小写互换

print(str1.center(50,"*"))		# 一共50个字符,字符串放中间,不够的两边补*
print(str1.ljust(50,"*"))		# 一共50个字符,字符串放左边,不够的右边补*	      
print(str1.rjust(50,"*"))		# 一共50个字符,字符串放右边,不够的左边补*

print(" haha\n".strip())		# 删除字符串左边和右边的空格或换行	(常用,处理文件的换行符很有用)
print(" haha\n".lstrip())		# 删除字符串左边的空格或换行
print(" haha\n".rstrip())		# 删除字符串右边的空格或换行

print(str1.endswith("you"))		# 判断字符串是否以you结尾	    类似于正则里的$	(常用)
print(str1.startswith("hello"))	# 判断字符串是否以hello开始	类似于正则里的^	(常用)

print(str1.count("e"))			# 统计字符串里e出现了多少次		               (常用)

print(str1.find("hive"))		# 找出nice在字符串的第1个下标,找不到会返回-1
print(str1.rfind("e"))		# 找出最后一个e字符在字符串的下标,找不到会返回-1
print(str1.index("hive"))	# 与find类似,区别是找不到会有异常(报错)		    (常用)
print(str1.rindex("e"))		# 与rfind类似,区别是找不到会有异常(报错)

print(str1.isalnum())		# 判断是否为数字字母混合(可以有大写字母,小写字母,数字任意混合)
print(str1.isalpha())		# 判断是否全为字母(分为纯大写,纯小写,大小写混合三种情况)
print(str1.isdigit())		# 判断是否为纯数字
print(str1.islower())		# 测试结果为:只要不包含大写字母就返回True
print(str1.isupper())        # 测试结果为:只要不包含小写字母就返回True
print(str1.isspace())		# 判断是否为全空格

print(str1.upper().isupper())	# 先把str1字符串全转为大写,再判断是否为全大写字母,结果为True

当然了字符串的方法很多,我们可以使用PyCharm 联想直接 寻找。


二、列表-List


序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推。Python有6个序列的内置类型,但最常见的是列表和元组。

序列都可以进行的操作包括索引,切片,加,乘,检查成员。

列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。

列表的数据项不需要具有相同的类型。

创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:

list1 = ['physics', 'chemistry', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]

2.1 列表的常见操作


列表的增删改查操作,列表是可变数据类型,可以进行增,删,改操作。

示例:

str_list = ["kafka", "hadoop", "hadoop", "hive", "range", "flink", "hbase"]

print(str_list)
print("列表长度: ", len(str_list))

# 修改 原来的元素
str_list.append("azkaban")
print("追加: " + str(str_list))

# 移除
str_list.remove("hive")
print("移除: " + str(str_list))

# c插入
str_list.insert(0,"yarn")
print("插入: " + str( str_list))

# 统计次数
cnt = str_list.count("hadoop")
print("hadoop出现的次数: ", cnt)

# 统计次数
a = str_list.index("hadoop")
print("hadoop第一次出现的索引位: ", a)

执行结果:

2.2 列表合并和拼接


我们可以将两个列表拼接为一个。

示例:

list1 = ["haha", "hehe", "heihei"]
list2 = ["xixi", "hoho"]

list1.extend(list2)    		# list1 += list2也可以,类似字符串拼接
print(list1)
print("++++++++++++++++++++++++++++++++++++++++++")


list3 = list1 + list2         # 上面list1 再拼接 list2
print(list3)

执行结果:

2.3 列表嵌套


示例:

# 列表里可以嵌套列表,也可以嵌套其它数据类型
emp = [["张三丰", 18000], ["张无忌", 16000], ["南乔峰", 20000], ["慕容复", 15000]]  

# 循环打印出人名与其对应的工资
for i in emp:
    print("%s 的工资是%d." % (i[0], i[1])) 

执行结果:


三、元组-Tuple


Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号,列表使用方括号。元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。元组是只读的,不代表元组里任何数据不可变。如果元组里有列表,那么列表里是可变的。

str_tup = ("kafka", "hadoop", "hadoop", "hive", "range", "flink", "hbase")
print(str_tup)
print("列表长度: ", len(str_tup))

# 统计次数
cnt = str_tup.count("hadoop")
print("hadoop出现的次数: ", cnt)

# 统计次数
a = str_tup.index("hadoop")
print("hadoop第一次出现的索引位: ", a)

print("+++++++++++++++++++++++++++++++")
tuple1 = (1, 2, 3, 4, 5, 1, 7)

print(tuple1)
print("类型: ", type(tuple1))
print("返回元组中元素最大值: ", max(tuple1))
print("返回元组中元素最小值: ", min(tuple1))
print("打印3这个元素在元组里的下标: ", tuple1.index(3))
print("统计1这个元素在元组里共出现几次: ", tuple1.count(1))
print("返回元组中元素【2-5)", tuple1[2:5])

执行结果:


四、字典-Dictionary


字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

注意:dict 作为 Python 的关键字和内置函数,变量名不建议命名为 dict

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

示例:

dict1 = {
    'stu01': "张三丰",
    'stu02': "张无忌",
    'stu03': "夫子",
    'stu04': "昊天",
}

print(type(dict1))
print(len(dict1))
print(dict1)

for i in dict1.items():
    print(i)

for i in dict1.items():
    print(i[0],  i[1])
    if i[1] == "张无忌":
        dict1[i[0]] = "郭靖"
print("张无忌改为郭靖: ", dict1)
print("查询stu03: ", dict1.get("stu03"))
dict1["stu05"] = "谢逊"
print("新增 stu05: ", dict1)

# 删
dict1.pop("stu01")
print("删除 stu01: ", dict1)

执行结果:

Python字典包含了以下内置方法:

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

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

相关文章

【云原生-深入理解Kubernetes-2】容器 Linux Cgroups 限制

文章目录 系列文章目录👹关于作者回顾一、Docker Engine 和 Hypervisor 区别二、容器比虚拟机受欢迎?优势劣势 三、Linux Cgroups 限制使用 Cgroups 子系统配置文件- 前提知识- 限制 ✊ 最后 系列文章目录 【云原生-深入理解Kubernetes-1】容器的本质是进…

一文理解RocketMQ

概述 RocketMQ是阿里开发的基于JMS的分布式消息中间件,是由纯JAVA实现的。放弃了比较重量级的Zookeeper作为注册中心,使用自研的NameServer实现元数据的管理,支持事务消息,顺序消息,批量消息,定时消息以及消…

软件体系结构复习题

2020 论述题 统一软件过程RUP:用例驱动、以架构为中心的迭代增量开发 一个用例可能需要多个功能来实现,一个功能也可能被用于多个用例 边界类、控制类、实体类 顺序图、通信图、定时图、交互概述图 扩展关系《extend》、包含关系《include》、…

python将图片批量排版插入Word文档

今天分享一个将图片批量插入word文档的小脚本,本脚本可以实现 jpg\png图片,可以混合在一起! 首先 我们需要设置每页word文档的排版需求,如:每页6张图片,一共是3行2列 pics_per_page 6,这是每页…

解说天下之操作系统

解说天下之操作系统 本文由桌案drawon (https://www.drawon.cn),云晶(https://www.yunjingxz.com)创始人根据多年从业经验, 从操作系统的起源,应用分类, 设计分类,以及资源使用角度对操作系统进…

leetcode 数据库题 175~185

leetcode 数据库题 175. 组合两个表176. 第二高的薪水177. 第N高的薪水178. 分数排名180. 连续出现的数字181. 超过经理收入的员工182. 查找重复的电子邮箱183. 从不订购的客户184. 部门工资最高的员工185. 部门工资前三高的所有员工小结 嗯。。。数据库题目就不贴原题内容了&…

00后是真卷不过,工作没两年,跳槽到我们公司起薪20K都快接近我了

在程序员职场上,什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事,我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事,可遇不可求,向他学习还来不及呢。 真正让人反感的,是技术平平&…

cocosCreator自动化打包工具

前言: 使用nodeJs脚本化Cocos Creator自动化构建、编译。 版本:cocosCreator2.4.5。 简述:使用自动化构建-编译工具前提,你终端上配置了相关的环境,比如JDK、NDK、SDK(对于原生平台)&#xff0c…

Express实战个人订阅号实现网站登录

今天我们来实现一个使用个人订阅号实现网站的功能,后端使用的是 express 。其它框架原理基本一致,只是定义路由或返回响应数据部分代码跟 express 有所出入。先来一波效果图: 1. 前言 20 年 3 月在掘金写过一篇文章,介绍了使用 e…

使用cmake 构建构建新项目的时候,编译提示库找不到怎么办?

昨天帮其他部门同事解决Linux下Qt编译找不到Qt 依赖库 core的问题。过程很有特征性,可以推广到Linux下使用cmake构建项目时找不到库文件的广泛性问题。 先上图,结合事情经过讲述: 事情经过: 这里给大家介绍第一个重点&#xff1…

秘塔写作猫

秘塔写作猫是集AI智能写作、多人协作、改写润色、文本校对等功能为一体的AI原生创作平台,可以帮助不同群体大幅提升写作效率和生产力。 接下来小编就带大家了解一下该软件具体的一些功能,不论你是学生、上班族还是自媒体从业者等,该工具绝对可…

箭头函数与普通的函数有什么区别-M

箭头函数与普通的函数有什么区别 1、写法不同 在 js 中,像命名式函数、函数表达式都称为普通函数。对于普通函数,需要用function关键字来声明。而箭头函数则不需要使用function关键字,在箭头前面的括号里面写参数,后面的大括号里…

Linux 安装MySQL-5.7.30

1.官网下载MySQL 进入官网https://www.mysql.com/ 从下载页面下载社区版本其中社区版本免费,免费的午餐不提供技术支持. 页面中MySQL Enterprise Edition是企业版,企业版收费但是会提供技术支持, 点击图中红框下载社区版本 选择Download Arc…

AC,AP以及三阶段项目

特点:access:连接终端设备 只能通过1个vlan trunk:交换机与交换机相连 可以通过多个vlan 共同特点:交换机的端口收发数据的规则: 收:如果收到的数据,没有携带任何标签,则使用该端口…

01SpringCloudRibbon负载均衡

Ribbon负载均衡 Ribbon Eureka帮我们集成了负载均衡组件:Ribbon,简单修改代码即可使用。 什么是Ribbon:客户端负载均衡组件 开启负载均衡 1、Eureka中已经集成了Ribbon,所以我们无需引入新的依赖,直接修改代码。 2、…

Redis的主从集群搭建与配置

文章目录 Redis主从集群模式搭建过程分级管理容灾冷处理 Redis主从集群模式 Redis的集群模式 主从复制模式:利用主从复制原理,一主多从架构。读写分离,主节点可读可写,从节点只能提供读服务。哨兵模式:哨兵实现了自动化…

Vue 3 + Element Plus 简单用法

Element Plus: A Desktop UI toolkit for Vue.js 即 Vue 桌面 UI 工具包 基于 Vue 2 的组件库和基于 Vue 3 的组件库安装方法不同,基于 Vue 3 的组件库叫做 Element Plus。 MDBootstrap 与 Element UI 区别: MD Bootstrap vs ElementUI: W…

如何在金融企业推进故障演练?中国人寿分阶段实践总结

一分钟精华速览 越来越多企业正在通过故障注入和演练的方式提升系统可靠性,这其中金融行业的应用较为特殊。一方面其可靠性要求比非涉账类系统更高;另一方面金融行业有更加严格的监管要求,如客户、账目等信息都有严格约束。加之金融系统较其…

ActiveMQ基础学习简单记录

ActiveMQ基础学习简单记录 JMS是什么JMS消息模型JMS Message Type Activemq安装概念强化JMS的跨平台性JMS通用接口JMS希望达到的目标是什么 Activemq发送消息的三种模式至少一次至多一次精确一次可重复确认模式小结 Activemq支持众多协议Activemq支持的定时消息,延迟消息,优先级…

【C++技能树】类和对象的使用 --初始化列表,static,友元,内部类,匿名对象的理解与使用

Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法…感兴趣就关注我bua! 类和对象的使用 0. 初始化列表explicit关键字 1.Static静态成员变量2.友元2.1.友元函数2.2.友元类 3.内部类4.匿名对象4.匿名对象至此初始化列表,static…