6、python基本数据类型之序列类型
前言:python的基本数据类型可以分为三类:数值类型、序列类型、散列类型,本文主要介绍序列类型及其通用操作。
一、序列类型
1)字符串(str):用单引号('),双引号("),三引号(三单引号'''或三双引号""")来表示
2)列表(list):用[ ]中括号表示
3)元组(tuple):用()小括号表示
二、字符串str
1.定义
字符串定义:单引号、双引号、三引号、str() 引号都是成对出现
空字符串:s ='' (单引号对里没有任何数据)
空字符:s =' ' (中间有一个空格)
a = 'test'
b = "book"
c = '''student'''
d = """tea"""
x = 123 # x是数值类型
y = str(x) # 通过python内置函数str()转换成字符串
2.字符串的常见操作
- 字符串的拼接: +
- 字符串的输出:print(),输出多个不同的数据用逗号隔开
- 字符串转义:\n换行 , r 防止转义
- 下标取值:[],默认下标从0开始,0,1,2.....,如果从后面倒序开始取,就是-1,-2,-3......
a = 'bo'
b = 'ok'
c = a + b # 字符串拼接
print(c) print('这是测试换行\n的字符串')
print(r'!@$#%#&"""这是防止转义的字符串')
print(c[0]) # 下标取值
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
book
这是测试换行
的字符串
!@$#%#&"""这是防止转义的字符串
b Process finished with exit code 0
3.字符串的常用方法
1)join字符串拼接
str1 = ''
str2 = str1.join(('zhangsan','nan','')
print(str2)
# 输出结果
# zhangsan000nan00018 str3 = ' '.join(str1)
print(str3)
# 输出结果
# 0 0 0
2)find查找元素
查找元素的位置,可以是单个元素,也可以查找字符串,如果找不到就返回-1
# find:查找元素,找到第一个返回对应的下标值,找不到返回-1
str1 = 'asdgsajl'
print(str1.find('a'))
print(str1.find('sa'))
print(str1.find('adadda')) # 输出结果
#
#
# -1
3)count统计元素个数
统计元素个数,可以是单个元素,也可以是字符串
str1 = 'asdgsajl'
print(str1.count('a')) # 输出结果
#
4)replace替换字符
可以替换单个元素,也可以替换字符串,从左到右会替换全部符合条件的,还可以指定替换次数
str1 = 'asdgsajl'
print(str1.replace('a',''))
print(str1.replace('a','',1)) # 只替换1次 # 输出结果
# 2sdgs2jl
# 2sdgsajl
5)split字符串分割
split() 指定某个字符为分隔符,分割出来的结果放入一个列表
str1 = 'sdagsajl'
print(str1.split('a')) # 输出结果
# ['sd','gs','jl'] # 分割后取出第一个,按下标取值,下标从0开始
print(str1.split('a')[0])
# 输出结果
# sd
6)upper、lower大小写
将英文字母全部转成大写、小写
str1 = 'asdfgh'
print(str1.upper()) str2 = 'SDFGG'
print(str2.lower()) # 输出结果
ASDFGH
sdfgg
7)strip去除空格换行符
去除首尾空格和换行符,另外还有lstrip()去除左边的空格,rstrip()去除右边的空格
str1 = ' asrfaada '
print(str1.strip) # 输出结果
# asrfaada
4.字符串格式化输出
1)传统格式化输出%
- 输出整数 %d
- 输出浮点数 %f
- 指定输出小数点位数 %.2f (保留小数点后2位)
- 输出字符串 %s
- 字符串截取 %.2s (保留两个长度的字符串)
test = 'python'
num = 12345.45612
print('test是%s' % test)
print('test是%.2s' % test)
# print('test是%d' % test) # 因为test是一个字符串,使用%d会报错
print('num是%d' % num)
print('num是%f' % num)
print('num是%.2f' % num)
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
test是python
test是py
num是12345
num是12345.456120
num是12345.46 Process finished with exit code 0
2)format格式化输出
用 { } 花括号作一个占位符,这种写法比较流行
- 不指定序号,自动取匹配 {}
- 指定下标序号去匹配 [0] [1]
- 保留两位小数 {:.02f}
- 百分比形式显示 {:.2%}
print('{}{}{}'.format('test','是','python')) # 常用这种写法
print('{}a{}a{}'.format('test','是','python'))
print('{2}{0}{1}'.format('test','是','python')) # 指定format下标
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
test是python
testa是apython
pythontest是 Process finished with exit code 0
三、元组tuple
1.定义
通过()小括号来表示元组,元组中的数据可以是任意的,但元组是不可变类型的数据,元组定义之后无法修改其内部的元素
2.元组的常见操作
下标取值:元组内部的数据是有序的,可以通过下标取值
注意点:
t = () 是空元祖
t = (1,) 只有一个数据的时候,要在末尾加一个逗号
3.元组的方法
count:查找元素的个数,找不到会返回0
index:查找元素的下标,还可以指定查找范围
t = () # 这是一个空元组
t2 = (1,) # 只有一个元素
t3 = (1, 2, 3, 'sdfg', '张三' , 'sdfg')
res = t3.count('张三')
res2 = t3.count('sd')
res3 = t3.count('sdfg')
res4 = t3.index('sdfg')
res5 = t3.index('sdfg', 0, 4)
print(t, t2, t3, res, res2, res3,res4, res5)
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
() (1,) (1, 2, 3, 'sdfg', '张三', 'sdfg') 1 0 2 3 3 Process finished with exit code 0
四、列表list
1.定义
- 列表用[] 中括号表示
- 列表内部的元素可以是任意类型
- 列表是使用最频繁的数据类型之一
2.列表的常见操作
1)下标索引取值:列表内部的元素是有序的
2)修改元素的值:列表是可变类型数据,可以通过下标修改指定位置的值
li = [1, 2, 'ada', (1, 2)] # 嵌套了一个元组,整个元组是一个元素
print(li[3])
li[3] = (1, 2, 3)
print(li)
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
(1, 2)
[1, 2, 'ada', (1, 2, 3)] Process finished with exit code 0
3.列表的方法
1)增:append、insert、extend
li = ['python', 'java', 'c', 'c++', 'go', 'ruby', 'html'] # 增加元素
# append:往列表的最后位置增加元素
li.append('php')
print(li)
li.append([11, 22, 33]) # 嵌套,加一个列表
print(li) # insert:按指定位置插入,通过下标指定
li.insert(3, 'c#')
print(li)
li.insert(4, '[0,1]') # 嵌套,指定位置加一个列表
print(li) # extend:插入多个元素
li.extend(['aa', 'bb', 'cc'])
print(li)
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
['python', 'java', 'c', 'c++', 'go', 'ruby', 'html', 'php']
['python', 'java', 'c', 'c++', 'go', 'ruby', 'html', 'php', [11, 22, 33]]
['python', 'java', 'c', 'c#', 'c++', 'go', 'ruby', 'html', 'php', [11, 22, 33]]
['python', 'java', 'c', 'c#', '[0,1]', 'c++', 'go', 'ruby', 'html', 'php', [11, 22, 33]]
['python', 'java', 'c', 'c#', '[0,1]', 'c++', 'go', 'ruby', 'html', 'php', [11, 22, 33], 'aa', 'bb', 'cc'] Process finished with exit code 0
2)删:pop、remove、clear(还有一个关键字del删除)
li = ['python', 'java', 'c', 'c++', 'go', 'ruby', 'html'] # 删除元素
# remove:删除指定元素,从前往后找,找到第一个删除,只删除第一个
li.remove('python')
print(li) # pop:指定下标删除,如果不传下标,默认删除最后一个,最后一个是-1
li.pop()
print(li)
li.pop(0)
print(li) # clear:清空列表的所有元素
# li.clear() 这里不做运行 # del:关键字(关键字删除) 把整个li列表从内存删除了
# del li 这里不做运行
del li[1] # 通过下标删除某一个元素
print(li)
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
['java', 'c', 'c++', 'go', 'ruby', 'html']
['java', 'c', 'c++', 'go', 'ruby']
['c', 'c++', 'go', 'ruby']
['c', 'go', 'ruby'] Process finished with exit code 0
3)查:index、count
li = ['python', 'java', 'c', 'c++', 'go', 'ruby', 'html'] # 查询
# count:计数
print(li.count('python')) # 统计元素的个数
# index:返回下标
print(li.index('java')) # 查找元素的下标
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
1
1 Process finished with exit code 0
4)改:通过下标修改值
li = ['python', 'java', 'c', 'c++', 'go', 'ruby', 'html'] # 修改列表元素
li[1] = 'python'
print(li)
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
['python', 'python', 'c', 'c++', 'go', 'ruby', 'html'] Process finished with exit code 0
5)其他:copy、reverse、sort
lii = [88,17,22,56,123,23,22,5]
# copy:对列表的元素倒序显示
test = lii.copy()
print(test) # sort:对数值排序,默认从小到大排序
lii.sort() # 从小到大排序
print(lii) lii.sort(reverse=True) # 从大到小排序
print(lii) # reverse:对列表的元素倒序显示
lii.reverse()
print(lii)
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
[88, 17, 22, 56, 123, 23, 22, 5]
[5, 17, 22, 22, 23, 56, 88, 123]
[123, 88, 56, 23, 22, 22, 17, 5]
[5, 17, 22, 22, 23, 56, 88, 123] Process finished with exit code 0
五、序列类型的通用操作
1.下标取值
可以正向取,从0开始,也可以反向取,从-1开始
2.切片
[a:b] a代表起始位置,b终止位置,使用的是元素下标,左闭右开,需a<b ;
[a: b : c] c为步长,c为负时表示反切,从后面开始切,需a>b
# 内部元素按下标索引进行排序
# 切片[a:b] 左闭右开
# [a:b:c] 为c步长 str1 = 'hello python !'
str2 = ['python','java','c++','c#','go','php']
str3 = (1,3,4)
print(str1[1])
print(str1[6:12])
print(str2[6:-2]) print(str1[::2]) # 毎2个元素为一步,取毎一步的第一个元素
print(str1[6:12:2]) # 取到python,步长为2,最后切片结果pto # 步长为正:开始位置下标小于终止位置 a<b
# 步长为负:开始位置下标大于终止位置 a>b print(str2[::-2]) # 从后面切起,2个元素为一步 print(str2[0:5:-2]) # 这样是切不到元素的,思考一下为什么?
print(str2[5:0:-2])
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
e
python
[]
hlopto
pto
['php', 'c#', 'java']
[]
['php', 'c#', 'java'] Process finished with exit code 0
3.获取元素总数
len()
4.统计元素个数
count()
str1 = 'asdas'
li = [1,2]
# len():打印元素的个数
print(len(str1))
print(len(li))
# count():打印元素的个数
print(str1.count('a'))
print(li.count(1))
5.序列类型之间的转换
- str():可以将整个元组或列表强制转换成一个字符串(基本不用)
- list():将元组和字符串中的每个元素拿出来,组成一个列表
- tuple():将列表和字符串中的每个元素拿出来,组成一个元组
# 序列类型之间的相互转换
str1 = 'hello python !'
str2 = ['python','java','c++','c#','go','php']
str3 = (1,3,4)
print(str(str2)) # 将整个元组或列表强制转换成一个字符串(基本不用)
print(str(str3))
print(list(str1)) # 将元组和字符串中的每个元素拿出来,组成一个列表
print(list(str3))
print(tuple(str1)) # 将列表和字符串中的每个元素拿出来,组成一个元组
print(tuple(str2))
运行结果:
C:\software\python\python.exe D:/myworkspace/test/test/test.py
['python', 'java', 'c++', 'c#', 'go', 'php']
(1, 3, 4)
['h', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n', ' ', '!']
[1, 3, 4]
('h', 'e', 'l', 'l', 'o', ' ', 'p', 'y', 't', 'h', 'o', 'n', ' ', '!')
('python', 'java', 'c++', 'c#', 'go', 'php') Process finished with exit code 0
6、python基本数据类型之序列类型的更多相关文章
- Python 基本数据类型和序列类型
python 3.6.4 中,有9种数据类型: int, float, bool, complex, list, tuple, string, set, dict (1).int 整型,不可变 (2) ...
- Python基本语法_基本数据类型_序列类型详解
目录 目录 序列 序列的标准操作符 切片操作符 一个例子 字符串的连接 序列的功能函数 enumerate 枚举出序列对象的元素 len 获取序列对象的长度 min 取出sequence中的最小值 m ...
- 5、python基本数据类型之数值类型
前言:python的基本数据类型可以分为三类:数值类型.序列类型.散列类型,本文主要介绍数值类型. 一.数值类型 数值类型有四种: 1)整数(int):整数 2)浮点数(float):小数 3)布尔值 ...
- python学习 数据类型之序列
一.序列(本文使用python3.5)############################################################# 列表.元组 字符窜都是序列#特点:#1 ...
- 潭州课堂25班:Ph201805201 第二课:数据类型和序列类型 (课堂笔记)
workon py3env pip install ipython 安装虚拟环境, 安装完成之后,键入:ipython 进入环境, 数字类型:(整型) int --------> ...
- python学习之:序列类型 之列表,元组,range
列表 列表是可变序列,通常用于存放同类项目的集合(其中精确的相似程度将根据应用而变化). class list([iterable]) 可以用多种方式构建列表: 使用一对方括号来表示空列表: [ ] ...
- python基本数据类型之数字类型和其相关运算
数字(number) Python3 支持 int.float.bool.complex(复数). 在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long. ...
- python通过json读写序列类型的数据文件
import json class a: def writeReadJson(self): list2 =['] with open("test.txt",'w') as f: j ...
- Python数据类型之“序列概述与基本序列类型(Basic Sequences)”
序列是指有序的队列,重点在"有序". 一.Python中序列的分类 Python中的序列主要以下几种类型: 3种基本序列类型(Basic Sequence Types):list. ...
随机推荐
- 被孟加拉题吊打的ACM考试
https://codeforces.com/gym/101864 题目并不难 B 考虑新加入的线段和之前线段有交的个数 总数-不交的,不交的:右端点在[l,r]左边,左端点在[l,r]右边的. 维护 ...
- k8s的网络方案对比
如下图,三台虚拟机k8s-master.k8s-node-1.k8s-node-2组成k8s集群,网络拓扑和节点IP分配如下图: 一.flannel组网方案 https://github.com/co ...
- Team Foundation Server 2015使用教程【7】:权限为读取器的团队成员连接tfs及checkin操作
- 学习Java第六周
1.内存结构 Java程序在运行时,需要在内存中的分配空间为提高运算效率,空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式. 栈内存 ·用于存储局部变量,当数据使用完,所占 ...
- 国内免费CMS系统大全
一.ASP类的CMS程序 1.动易CMS 官方网址:http://www.powereasy.net/(可免费下载) 特点:完全免费,ACCESS数据库,主要功能模块:文章频道.下载频道.图片频道.留 ...
- 再也不学Threadlocal了,看这一篇就忘不掉了(万字总结)
为什么要学习ThreadLocal呢?因为面试官经常问,而且在线程中使用它可以给我们提供一个线程内的本地局部变量,这样就可以减少在一个线程中因为多函数之间的操作导致共享变量传值的复杂性,说白了,我们使 ...
- Hyperledger Fabric动态配置Raft节点
Hyperledger Fabric动态配置Raft节点 最近看官方文档发现新的共识算法etcdRaft允许动态添加或删除排序节点,所以也花了一天时间操作了以下,写篇文章把整个过程记录一下. 初始网络 ...
- IDEA环境使用Git
推送到Github 在设置中登录github账户 点击OK 将项目交给Git管理 之后项目文件就会变成红色 添加文件到暂存区 点击Add之后,项目文件会变成绿色 添加文件到本地仓库 点击Commit ...
- 从壹开始 [ Ids4实战 ] 之七 ║ 客户端、服务端、授权中心全线打通
1.经过元旦两天的全力整改,终于在这新的一年,完成了我的布道生涯的第一个大步走 —— 那就是客户端(VUE).服务端(ASP.NET Core API).授权中心(IdentityServer4)的大 ...
- Python 任务自动化工具 tox 教程
在我刚翻译完的 Python 打包系列文章中,作者提到了一个神奇的测试工具 tox,而且他本人就是 tox 的维护者之一.趁着话题的相关性,本文将对它做简单的介绍,说不定大家在开发项目时能够用得上. ...