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

Python字符串

时间:2019-10-16 19:53:04      阅读:87      评论:0      收藏:0      [点我收藏+]

标签:另一个   key   第一个   查看   encode   sign   html   pos   upper   

第二讲 list 列表

一.列表的基本介绍

  1. 什么是列表?

列表由一系列按特定顺序排列的元素组成,使用[]作为定界符,用逗号作为元素分隔符。

  1. List的特点

 有序可变,可以是任意类型数据。

  1. 列表的数据结构

 使用下标地址,双下标(正下标和负下标)正下标从零开始,负下标从-1开始。

 A=[12,34,56,[23,’a’],89,”我是元素”]

12

34

56

[23,’a’]

89

我是元素

 

 

 

 

 

0  1   2   3     4   5

A[0]                  a[5]

-                      -

 

案例:

a=[12,45,67,"我们是元素“[‘a‘,"ffff"]]

print(a)

print(a[0],a[2],a[3])

print(a[4])

print(a[0]+a[1])

print(-1)

  1. 列表可以嵌套,地址采用二维空间地址,从下标0开始

  B=[23,34,45,[23,67,89],90]

Print(a[4])

Print(a[4][0])

Print(a[4][1])

Print(a[-1])

Print(a[-1][0])

Print(a[-1][-1])

 

二.List的基本操作

  1. 获取某个元素的下标地址

   格式 list.index(元素值)

功能:获得某个元素的下标地址

案例:

a=[12,45,67,"我们是元素“[‘a‘,"ffff"]]

Print(“12的下标地址=”,a.index(12))

Print(“[‘a’,”ffff”]的下标地址=”,a.index([‘a’,”ffff”])

2使用下标地址改变元素的值

格式 list[下标地址]=

功能 改变某个元素的值

案例:

a=[12,45,67,"我们是元素“[‘a‘,"ffff"]]

A[0]=234

A[3]=”我们变了

A[4]=[“a”,”bcd”]

Print(a)

 

3.使用下标地址删除元素

格式 del 元素的下标地址,多个用逗号分隔

功能 删除某个元素或同时删除多个元素

案例  

a=[12,45,67,"我们是元素“[‘a‘,"ffff"]]

A[0]=234

A[3]=”我们变了

A[4]=[“a”,”bcd”]

Print(a)

Del a[0]

Del a[3]

Print (a)

 

三.List的加法和乘法

 

  1. +

格式 list1+list2+list3+.....

功能 将多个列表合成一个列表

案例

A=[1,2,3,4,5,5]

B=[45,67,89]

C=[“aa”,”bb”,”cc”]

D=a+b+c

Print(d)

  1. *

格式 list1*n

功能 将一个列表以多倍的形式生成一个新列表

案例 A=[1,2,3,4,5,5]*4

B=[45,67,89]

C=[“aa”,”bb”,”cc”]*4

 

Print(a)

Print(c)

, list的内置函数

1 len()

格式 len(列表)

功能 求一个列表的长度,就是元素的个数。

案例

a=[1,2,3,4,5,6,7,7,8,55,55,55,5,5]

print("a的长度=”,len(a))

2 max()

格式 max(列表)

功能 求一个列表的最大值

案例

3 min()

格式 min(列表)

功能  求一个列表的最小值

案例

a=[1,2,3,4,5,6,7,7,8,55,55,55,5,5]

print("a的长度=”,len(a))

Print(max(a))

Print(min(a))

list的方法

  1. 查看lsit的方法

  格式  dir([])

  功能 查询list数据类型的方法

  1. list尾部追加新元素

   格式 在列表尾部追加元素,元素必须是一个元素,可以其他数据类型

    案例:

x=[100,200,300]

x.append(888)

x.append({999,666})

x.append([2,3,4,])

print(x)

  1. 扩展list的内容

格式 list.extend(参数)

功能 在列表尾部扩展元素,元素的参数必须是一个,参数必须是对象型数据。

特别说明:字符串对象每个字符作为一个元素扩展。

案例

x=[100,200,300]

x.extend({123,456})

x.extend(‘ffffffff’)

X.extend(“xxxxxxx”)

print(x)

  1. 给列表插入数据元素

格式 list.insert(下标地址,值)

功能 在任意位置插入元素,参数必须是一个,参数可以是对象型数据

特别说明 如果插入位置没有足够大的下标地址时,元素插入尾部。

如果有插入位置,元素就插入在这个位置上原有的数据后移

x=[100,200,300]

x.insert(98,45)

x.insert(-1,38)

X.insert(-8,21)

print(x)

  1. 删除指定元素

格式 list.remove()

功能 删除指定元素,下一个元素上移。

案例

x=[100,200,300]

x.remove(200)

print(x)

  1. 使用下标地址删除指定元素

格式 list.pop(下标)

功能 删除指定元素,默认删除栈顶元素。

案例

x=[100,200,300,567,890,345]

x.pop()

x.pop(3)

print(x)

  1. list的排序

7.1list的乱序

使用random模块的方法shuffle乱序

 

7.2list的从小到大排序

7.3list的颠倒排序

import random    #随机数模块

a=[2,3,4,5,6,799,12,34,78,90]

print("原始数据",a)

random.shuffle(a)

print("乱序数据",a)

a.sort()

print("从小到大排序",a)

a.reverse()

print("颠倒排序数据",a)

  1. 切片

  是一种访问数据的操作,可以任意范围,相当灵活。

格式 list[ 起始位置:结束位置 :步长 ]

功能 从起始位置到结束位置按步长访问数据

应用格式:

List[::]

List[:]

List[::1]

List[::2]

案例

a=[2,3,4,5,6,799,12,34,78,90]*4

print(a)

print(a[::])

print(a[:])

print(a[::1])

print(a[::2])

print(a[::3])

print(a[::4])

案例

a=[2,3,4,5,6,799,12,34,78,90]

print(a[4:8])

print(a[2:10])

print(a[2:10:3])

print(a[::-1])

print(a[::-2])

  1. 递推式(表达式)构造列表

递推式(表达式)语法

Expression for Expression1 in sequence1

         For Expression2 in sequence2

         for Expression3 in sequence3

         If condition

功能 Expression 是个表达式

     Expression1表达式中的变量1,如果在sequence1中循环迭代每一个元素来及时表达式的值,其他变量相同。

     If condition 带条件的计算递推式(表达式)

 

案例 a=[2,3,4,5]

b="ab"

cc=[(x*y)for x in a for y in b]

print(cc)

c=[23,45,67,89]

dd=[(i+j)for i in a for j in c if i+j>=48]

print(dd)

菜鸟list

Python列表函数&方法

Python包含以下函数:

序号

函数

1

len(list)
列表元素个数

2

max(list)
返回列表元素最大值

3

min(list)
返回列表元素最小值

4

list(seq)
将元组转换为列表

Python包含以下方法:

序号

方法

1

list.append(obj)
在列表末尾添加新的对象

2

list.count(obj)
统计某个元素在列表中出现的次数

3

list.extend(seq)
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

4

list.index(obj)
从列表中找出某个值第一个匹配项的索引位置

5

list.insert(index, obj)
将对象插入列表

6

list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

7

list.remove(obj)
移除列表中某个值的第一个匹配项

8

list.reverse()
反向列表中元素

9

list.sort( key=None, reverse=False)
对原列表进行排序

10

list.clear()
清空列表

11

list.copy()
复制列表

二.字符串

  1. 什么是字符串

  用单引号,双引号和三引号括起来的任意长度的字符串组合。

单引号,双引号只能是单行数据,三引号可以是多行数据,如果没有任何字符就空串。

  1. 字符串的下标地址(索引 index

  采用双下标地址,从0-1开始

  1. 通过索引对字符串操作

 就是使用下标地址从正向和反向访问数据

案例:

a="65465419684986"
b=‘65468168168468‘
c=‘‘‘5125854925941156245454546546416‘‘‘
d="a5dsa5d1f6fwe1ew1e3f3w6d1ew61d6e1f"
e="d845wd6a4dew8x777777777777777777777777777777"
print(a)
print(b)
print(c)
#使用下标访问数据
print(a[0],a[2])
print(d[0],d[10])
print(c[0]+c[10])
print(a[-1],b[-3],c[-20 ])

  1. 字符串的切片操作

 案例:


print(a[:-2])切字符串a中的数据到-2位置的内容
print(a[::-1])反向切字符串a的数据
print(a[::-3])每隔3个字符反向切字符串a中的数据
print(e)
print(e[3:10])从第4个字符切到第个字符 不包括第10个
print(e[3:10:2])每隔2个字符从下标3的位置开始到下标为10的位置切字符串e中的数据
print(e[3:10:-2])0个字符
print(e[3:10:4])每隔4个字符切一刀

5.字符串中的转义符字符

字符

含义

\\

反斜杠

\’

单引号

\”

双引号

\a

响铃

\b

退格

\e

转义

\n

换行

\w

纵向制表符

\f

换页符

\t

横向制表符

\000

\ooo

八进制的ASCII

\xyy

十六进制数,yy代表字符

案例:

a="6546\5419\\684\n986"
b=‘6546\‘81681\a\a\a\a684\b68‘
c=‘‘‘5125854925941156245454546546416‘‘‘
d="a5dsa5d1f\t6fwe1ew1e3\wf3w6d1ew61d6e1f"
e="d845wd6a4dew8\fx777777777777777777777777777777"
print(a)
print(b)
print(d)
print(e)

6. 字符串运算

1)加法运算符

格式 字符串1+字符串2+字符串3

功能

2)*运算符

格式 字符串1*n

3)逻辑运算符

>< = <= >= ==

4Innot in运算符

案例:a="abc"
b="123"
c="yyyddd"
d=a+b+c
e=a*2+c*4
print(d)
print(e)
x=a
print(id(a))
print(id(x))
if a==x:
    print("7777777")
else:
    print("684984986496")
x=123456
print(id(x))
if a==x:
    print("7777777")
else:
    print("684984986496")
if ‘y‘ in c :
    print("7777777")
else:
    print("66666666")

  1. 字符串的格式化输出

1)%操作符格式化字符串

  1. 字符串模板参数

符号

功能

*

定义宽度或小数位

-

表示左对齐,正数前无符号,负数前添加符号

+

表示右对齐,正数前添加正号,负数前添加负号

<sp>

表示右对齐,正数前添加空格,负数前添加负号

#

在八进制数前添加0在十六制数前面显示0x或者0X

0

表示右对齐,显示的数字前面天才0而不是默认的空格

%

%%输出一个%字符

m.n.

m是显示的最小总宽度,n是小数点后的位数(如果可以的话)

 

  1. 字符串格式化控制符

符号

功能

%c

格式化字符的ASCII

%S

格式化字符串

%d

格式化整数

%u

格式化无符号整形

%o

格式化无符号八进制数

%x

格式化无符号十六进制

%X

格式化无符号十六进制(大写)

%f

格式化浮点数字,可指定小数点后的精度

%e

用科学计数法格式化浮点数

%E

用科学计数法格式化浮点数

%g

%f%e的简写

%G

%f%E的简写

%p

用十六进制数格式化变量的地址

a="abc"
b="123"
c="yyyddd"
print("a字符串的内存地址:%x"%id(a))
print("a字符串的内存地址:%X"%id(a))
print("b=%d"% int(b))
print("b=%u"% int(b))
print("b=%o"% int(b))
print("b=%x"% int(b))
print("b=%c"% 98)
print("%s"% "sadsadsadsadsadsa")
d=123456.667788
print("d=%f"% d)
print("d=%.1f"% d)
print("d=%.2f"% d)
print("d=%.0f"% d)
print("d=%f%%"% d)
print("d= %+20.2f"% d)
print("d= %-20.2f"% d)

二,format()函数格式字符串

  1. 格式

   Str.format(字符{},字符{},{}....)

说明:

1.format(字符{0},字符{1}{2}....)字符串格式模板。

2.{}占位符:可以是多个,在字符串的任意位置,这些占位符接收format()方法中的参数,用下标顺序传递参数

3.位置参数的匹配

在模板字符串中,如果占位符{}为空,将按照参数出现的顺序进行传递,如果占位符{序号}指定了序号,则按照序号传递

格式:字{0}{}.format(实参12

案例:

print("{} 在{}学校{}".format("王二小","李二小","张小二"))

 

print("{} 在{}学校{}".format("王二小","李二小","张小二"))
print("{name}在我们的{age}字符{xb}串里".format(age=23,name=‘王小二‘,xb=‘女‘))

说明:占位符使用名称占位符,参数使用名称赋值数据

a="今年土豆的产量比去年提高了%3.2f%%"
b=29.345
c=a % b
print(c)
print("今年土豆的产量比去年提高了%3.2f%%"%23.456)

 

参数按对应名称传递。

2) 关键字参数

格式:字{名字2}{名字1}.format(名字1=值,名字2=)

参数匹配时按名称传递。

占位符名称和实际参数名顺序无关。

3)下标参数

如果实参是列表,字符串等数据类型,可以是索引下标地址来传递参数

{0[1]}{1[2]}.format(实参0,实参1)

说明:{0[1]}取值是实参0的下标为1的值{1[2]};取值是实参1的下标为2的值

 

模板字符串的格式控制符

[ : [fill] align] [sign] [width] [,] [.precision] [type]

控制符

含义

:

引导符,必须加

Fill    

空白处填充的字符

Align

对齐方式

<

内容左对齐

>

内容右对齐

^

内容居中对齐

Sign

可选参数,数字前的符号

+

在正数数值前添加正号,在负数数值前添加负号

-

在正号不变,在负数数值前添加负号

空格

在正数数值前添加空格,在负数数值前添加负号

Width

可选参数,指定格式化后的字符串所在的宽度

逗号(,)

可选参数,为数字添加千分位分隔符

Precision

可选参数,指定小数位的精度

Type

可选参数,指定格式化的类型

 

字符串的内置函数(操作)

5.1首字符大写

格式 string.copitalize()

功能:将字符串首字符变大写其他都变小写

5.2字符串居中输出

格式 string.center(宽度)

功能:将字符串在指定宽度范围内居中输出

案例:a="who is student,YOU IS STUDENT"
print(a.capitalize())
print(a.center(50,"*"))

5.3统计字符次数

格式string.count(str,beg=0,end=n)

功能:在字符串中统计str字符出现的次数

Beg:指定统计的开始位置

End:指定统计的结束位置

a=s

5.4检查结束符

格式 string.endswith(obj,beg=0,end=n)

功能:检查字符串是否已obj结束,如果指定了范围就检查范围内是否已obj结束,返回逻辑值

Beg:指定开始位置

End:指定结束位置

5.5检查开始符

格式 string.startswith(obj,beg=0,end=n)

功能:检查字符串是否已obj开始,如果指定了范围就检查范围内是否已obj开始,返回逻辑值

Beg:指定开始位置

End:指定结束位置

案例:a="who is student,YOU IS STUDENT"
print("a的长度{}".format(len(a)))
print("who在a中下标地址2到20内存的次数{}".format(a.count("who")))
print("who在a中下标地址2到20内的次数{}".format(a.count("who"),2,20))
print("a字符串的开始字符是{},对不对={}".format("w",a.startswith("w")))
print("a字符串的范围(12-30)开始字符是{},对不对={}".format("st",a.startswith("st",12,30)))
print("a字符串的结束字符是{},对不对={}".format("T",a.startswith("T")))
print("a字符串的范围(12-30)结束字符是{},对不对={}".format("st",a.endswith("st",12,30)))

5.6字符串解码

格式 string.decodeencoding=UTF-8error=’错误提示信息)

功能:以encoding指定的编码格式解码字符串,错误出现提示信息

5.7字符串解码

格式 string.encodeencoding=UTF-8error=’错误提示信息)

功能:以encoding指定的编码格式解码字符串,错误出现提示信息

a="我们编码了"
print(a)
print(a.encode("gb2312"))
print(a.encode("utf-8"))

5.9字符串查找

格式 string.find(str,beg=0,end=n)

功能:查找str是否在字符串中,如果在 返回str在字符串的开始下标地址,否则返回-1begend在指定范围内查找。

Beg:指定开始位置

End:指定结束位置

5.11字符串查找

格式 string.index(str,beg=0,end=n)

功能:查找str是否在字符串中,如果在返回str在字符串的开始下标地址,否则返回错误,begend在指定范围内查找。

Beg:指定开始位置

End:指定结束位置

5.12字符串查找

格式 string.rindex(str,beg=0,end=n)

功能:从右边查找str是否在字符串中,如果在返回str在字符串的开始下标地址,否则返回错误,begend在指定范围内查找。

Beg:指定开始位置

End:指定结束位置

案例:

a="stdent is goods swo is you sfffa sabde"
print("s在a的位置是={}".format(a.find("s")))
print("you在a的位置是={}".format(a.rfind("you")))
print("you在a的位置是={}".format(a.rfind("you",2,20)))
print("you在a的位置是={}".format(a.index("st")))
print("you在a的位置是={}".format(a.index("st",3,40)))
print("you在a的位置是={}".format(a.rindex("st")))
print("you在a的位置是={}".format(a.rindex("st",6,20)))

5.13分割字符串

格式 string.split(str=分割符num=n

功能:使用指定的分割符分割字符串,默认为空。Num=n指定将字符串分成n个子字符串

5.14分割字符串2

格式 string.splitlines([keepends]

功能:按照(\r,\r\n,\n)这几个特殊字符分割,返回包含n行的列表,如果keependsfalse,不包括换行符

如果keependstrue则保留换行符。

 

 

5.15分割查找

格式 string.partition(str1)

功能:它是find()和split()的结合体。从str出现的第一个位置起,把字符串string分割成3个元素的元组(string_pre_str,string_post_str),如果string不包括strstring_pre_str=string

5.16分割查找

格式 string.rpartition(str1)

功能:它是find()和split()的结合体。从str出现的右边第一个位置起,把字符串string分割成3个元素的元组(string_pre_str,string_post_str),如果string不包括strstring_pre_str=string

 

5.15替换字符串

格式 string.replace(str1,str2,num=n)

功能将str1替换为str2n指定替换次数

5.16 删除字符串

格式 =string.lstrip()

功能:删除字符串的前导空格

格式 string.rstrip()

功能 删除字符串的尾部空格

格式 string.strip()

功能:删除字符串的前后两部分空格

案例:

c="    dasjohdwqkasdsad      "
print("c的长度={}".format(len(c)))
print("c的删除前导空格后的长度={}".format(len(c.lstrip())))
print("删除去导空格后的内容={}".format(c.rstrip()))
print("c的删除尾部空格后的长度={}".format(len(c.rstrip())))
print("c的删除尾部空格后的内容={}".format(c.rstrip()))
print("c的删除空格后的长度={}".format(len(c.strip())))
print("c的删除空格后的长度={}".format(c.strip()))

大小写切换

c="    dasjohdwqkasdsad      "
d="ASDHIHAFUIAHFJIA"
print(c.upper())
print(d.lower())

5.17判断一个字符串中有没有字符

格式 string.isalnum()

功能 判断string中是不是有字符存在

,如果有返回true否者则返回false

说明:字符是字母和数字的组合,特殊符号不是字符

5.18判断一个字符串中有没有字符

格式 string.isalpha()

功能 判断string全部是字母

,如果是返回true否者则返回false

说明:字符是字母和数字的组合,特殊符号不是字符

 

Python字符串

标签:另一个   key   第一个   查看   encode   sign   html   pos   upper   

原文地址:https://www.cnblogs.com/fengmofeng/p/11687548.html

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