码迷,mamicode.com
首页 > 编程语言 > 详细

6、python基本数据类型之序列类型

时间:2020-01-22 14:47:52      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:通过   分隔符   int()   防止   定义   返回   16px   tuple   lower   

 

前言: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 = 000
str2 = str1.join((zhangsan,nan,18)
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))

# 输出结果
# 0
# 4
# -1

3)count统计元素个数

 统计元素个数,可以是单个元素,也可以是字符串

str1 = asdgsajl
print(str1.count(a))

# 输出结果
# 2

4)replace替换字符

 可以替换单个元素,也可以替换字符串,从左到右会替换全部符合条件的,还可以指定替换次数

str1 = asdgsajl
print(str1.replace(a,2))
print(str1.replace(a,2,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基本数据类型之序列类型

标签:通过   分隔符   int()   防止   定义   返回   16px   tuple   lower   

原文地址:https://www.cnblogs.com/miki-peng/p/12228399.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!