python数据结构和字符串的相关操作

简介: 把这几天零散的笔记收集一下,内容比较重要,虽然似乎很简单,一个是字符串切片,一个是数据结构,都是比较重要的语法。主要是集中一下常用的操作,没有什么难度,对代码输出就明白了。代码中也备了注释。看代码吧!

把这几天零散的笔记收集一下,内容比较重要,虽然似乎很简单,一个是字符串切片,一个是数据结构,都是比较重要的语法。主要是集中一下常用的操作,没有什么难度,对代码输出就明白了。代码中也备了注释。看代码吧!


一:字符串以及切片相关


#py字符串操作
# 切片语法[start:end:step] step默认是1
#下表会越界,但是切片不会
Test = "python"
print(type(Test))
print('获取第一个字符%s'%Test[0])
for item in Test : 
    print(item,end=' ')
name = 'Peter'
print("姓名转换变大写%s"%name.capitalize())#首字母变大写
a = '   hello    '
b = a.strip()#去除字符串中存在地空格
c = '    hello '
d = c.lstrip() #去除左边的空格
e = 'hello   '
f =e.rstrip()#去除右边的空格
print(b)
print(d)
print(f)
#id函数,查看一个对象的内存地址
g = id(a);
g1 = id(b)
print(g,g1,end=',')
dataStr = 'i love python'
h1 = dataStr.find('p')#查找p是再字符串当中所对应的下标值(一般返回第一次出现的位置)
h2 = dataStr.find('o')
h3 = dataStr.find('m') #如果没有找到就会返回-1
print(h1)
print(h2)
print(h3)
print(dataStr.index('v'))#也是一种查找的方式,和find方式很相似
print(dataStr.index('o'))
# print(dataStr.index('m'))#index如果没有找到就会返回异常
print(dataStr.startswith('i'))#判断想要查找的字符串是否以某字符开头
print(dataStr.endswith('y'))#判断要查找的字符串是否以某字符结尾
print(dataStr.lower)#将字符串都变成小写
print(dataStr.upper)#将字符串都转换为大写
#进行切片的操作
strMsg = "hello word"
#下面进行切片,也就是取字符串当中部分数据
print(strMsg[2:5])#不包含5下标(切片,左闭右开)
print(strMsg[2:])#从第二个下标一直取到最后(从第三个字符到最后)
print(strMsg[0:3])#从第一个字符取到第三个字符
print(strMsg[::-1])#倒序输出



二:数据结构


1:列表(list)

from typing import List
listA = ["python","java","c",12,True]
print("输出完整的列表:",listA)
print("输出第一个元素:",listA[0])
print("列表切片操作",listA[2:5])
print("多次输出列表当中的数据",listA*3)
listA.append("蒋光道")#给列表追加入数据
print("追加之后的列表:",listA)
listA.insert(1,'daodaozi')#列表插入数据
print("插入数据之后的列表:",listA)
listB  =list(range(10))
print(listB)
listA.extend(listB)#扩展listA,批量添加
listA[0] = '康哥'#修改列表相应的值
print("修改之后的列表:",listA)
del listA[0] #删除列表第一个元素
print("删除第一个元素后的列表",listA)
del listA[1:3] #进行批量范围删除
print("批量删除后的列表:",listA)
listA.remove(12)#移除指定元素
print("移除指定元素后的列表",listA)
listB.pop(0)#移除第一个元素
print("移除第一个元素的列表",listB)
n = listB.index(1)#查找元素所在的索引下标
print("查找到的索引下标",n)



2:元组(tuple)


#py数据结构元组
# 特点 : 1:不可变
# 2:用小括号来创建元组类型
# 3:用,号来分割可以是任何的类型
# 4:当元组中只有一个元素时,要加入逗号,不然解释器会当作整型来进行处理
# 4:元组同样支持切片操作
tupleA = ()
print(id(tupleA))
print("查看元组类型为:",type(tupleA))#查看元组类型
tupleA = ("abcd","sdjnsd",83782,True,["jgdabc","jis"])
print("赋值后的元组为:",tupleA)
# 遍历元组
for item in tupleA : 
    print(item,end=",")
#取元组的元素
print(tupleA[0])    
#切片元组
print("切片",tupleA[2:4])
print("切片倒序输出:",tupleA[::-1])
print("切片倒序步长输出:",tupleA[::-2])#倒序输出每个两个字符取一次
print(tupleA[-2:-1:])#要考虑到左闭右开,不指定步长的话默认步长为1
print(id(tupleA) ) #打印元组的内存地址id
tupleA[4][0] = "蒋光道" #尝试对元组中的列表元素进行修改
print(tupleA)
tuple_c = tuple(range(10)) #强转
print(tuple_c)
print(tuple_c.count(1)) #统计数据项中指定元素的出现个数



3:字典(dict)


#python数据结构字典
# 字典是由键值对组成得集合,通常使用键来进行对数据得访问。
# 特点:
"""
不是序列类型,没有下标得概念,是一个无无序的键值组合
{}表示字典对象,每个键用逗号分隔
键必须是不变的类型
每个键必须是唯一,如果重复,则后者会被覆盖
"""
# 创建字典
dict_a = {}
print("dict_a数据类型为:",type(dict_a))
dict_a['name']='jgdabc'#说明可以通过键值进行追加
dict_a['post']="歌手"
# 另一个添加方式
dict_a={"pro":"艺术","school":"北京电影学院"}
print("添加数据后字典为:",dict_a)
print("数据1的长度:",len(dict_a))
# 通过键来查找值
print("通过键来查找值;",dict_a['pro'])
print("打印所有的键:",dict_a.keys())
print("打印所有的值:",dict_a.values())
print("获取所有的键和值",dict_a.items())
for key,Value in dict_a.items() :
    print(key+"=="+Value)
dict_a.update({"age":32}) #可以添加或者更新
print(dict_a)
# 删除操作
#del dict_a['age']
print(dict_a)
#另一种删除
#dict_a.pop("school")
print(dict_a)
# 排序操作
dict_a = {"蒋光道":1,"约翰":2,"詹姆森":3}
new_dict_aa = sorted(dict_a.values())#按照值牌序
print(new_dict_aa)
new_dict_bb = sorted(dict_a.items(),key=lambda d:d[1],reverse=False)
print("输出按照值排序后的字典",new_dict_bb)
print("按照值来排序,单独答应排序值:",new_dict_aa)
new_dict_a = sorted(dict_a.items(),key=lambda d:d[0],reverse=False)#按照key升序排序,ASCII码排序
print("按照key升序排序后的字典",new_dict_a)
new_dict_a_1 = sorted(dict_a)
print("单独打印出排序后的key值:",new_dict_a_1)


相关文章
|
10天前
|
数据挖掘 PyTorch TensorFlow
|
4天前
|
机器学习/深度学习 数据采集 算法
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
有多种方法可以处理时间序列数据中的噪声。本文将介绍一种在我们的研究项目中表现良好的方法,特别适用于时间序列概况中数据点较少的情况。
19 1
数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例
|
7天前
|
算法 Python
揭秘!Python数据魔术师如何玩转线性回归,让你的预测精准到不可思议
【9月更文挑战第13天】在数据科学领域,线性回归以其优雅而强大的特性,将复杂的数据关系转化为精准的预测模型。本文将揭秘Python数据魔术师如何利用这一统计方法,实现令人惊叹的预测精度。线性回归假设自变量与因变量间存在线性关系,通过拟合直线或超平面进行预测。Python的scikit-learn库提供了简便的LinearRegression类,使模型构建、训练和预测变得简单直接。
20 5
|
9天前
|
存储 算法 测试技术
预见未来?Python线性回归算法:数据中的秘密预言家
【9月更文挑战第11天】在数据的海洋中,线性回归算法犹如智慧的预言家,助我们揭示未知。本案例通过收集房屋面积、距市中心距离等数据,利用Python的pandas和scikit-learn库构建房价预测模型。经过训练与测试,模型展现出较好的预测能力,均方根误差(RMSE)低,帮助房地产投资者做出更明智决策。尽管现实关系复杂多变,线性回归仍提供了有效工具,引领我们在数据世界中自信前行。
24 5
|
9天前
|
机器学习/深度学习 数据挖掘 TensorFlow
🔍揭秘Python数据分析奥秘,TensorFlow助力解锁数据背后的亿万商机
【9月更文挑战第11天】在信息爆炸的时代,数据如沉睡的宝藏,等待发掘。Python以简洁的语法和丰富的库生态成为数据分析的首选,而TensorFlow则为深度学习赋能,助你洞察数据核心,解锁商机。通过Pandas库,我们可以轻松处理结构化数据,进行统计分析和可视化;TensorFlow则能构建复杂的神经网络模型,捕捉非线性关系,提升预测准确性。两者的结合,让你在商业竞争中脱颖而出,把握市场脉搏,释放数据的无限价值。以下是使用Pandas进行简单数据分析的示例:
23 5
|
9天前
|
存储 安全 算法
RSA在手,安全我有!Python加密解密技术,让你的数据密码坚不可摧
【9月更文挑战第11天】在数字化时代,信息安全至关重要。传统的加密方法已难以应对日益复杂的网络攻击。RSA加密算法凭借其强大的安全性和广泛的应用场景,成为保护敏感数据的首选。本文介绍RSA的基本原理及在Python中的实现方法,并探讨其优势与挑战。通过使用PyCryptodome库,我们展示了RSA加密解密的完整流程,帮助读者理解如何利用RSA为数据提供安全保障。
26 5
|
10天前
|
数据采集 数据挖掘 数据处理
使用Python和Pandas处理CSV数据
使用Python和Pandas处理CSV数据
40 5
|
11天前
|
数据采集 存储 数据挖掘
使用Python读取Excel数据
本文介绍了如何使用Python的`pandas`库读取和操作Excel文件。首先,需要安装`pandas`和`openpyxl`库。接着,通过`read_excel`函数读取Excel数据,并展示了读取特定工作表、查看数据以及计算平均值等操作。此外,还介绍了选择特定列、筛选数据和数据清洗等常用操作。`pandas`是一个强大且易用的工具,适用于日常数据处理工作。
|
12天前
|
安全 数据安全/隐私保护 Python
情书也能加密?Python AES&RSA,让每一份数据都充满爱的密码
【9月更文挑战第8天】在这个数字化时代,情书不再局限于纸笔,也可能以电子形式在网络中传递。为了确保其安全,Python提供了AES和RSA等加密工具,为情书编织爱的密码。首先,通过安装pycryptodome库,我们可以利用AES对称加密算法高效保护数据;接着,使用RSA非对称加密算法加密AES密钥和IV,进一步增强安全性。即使情书被截获,没有正确密钥也无法解读内容。让我们用Python为爱情编织一张安全的网,守护每份珍贵情感。
26 2
|
19天前
|
数据采集 JavaScript 前端开发
构建简易Python爬虫:抓取网页数据入门指南
【8月更文挑战第31天】在数字信息的时代,数据抓取成为获取网络资源的重要手段。本文将引导你通过Python编写一个简单的网页爬虫,从零基础到实现数据抓取的全过程。我们将一起探索如何利用Python的requests库进行网络请求,使用BeautifulSoup库解析HTML文档,并最终提取出有价值的数据。无论你是编程新手还是有一定基础的开发者,这篇文章都将为你打开数据抓取的大门。