资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

python-重点!!序列:列表、元组、集合、字典、字符串-创新互联

一、序列概述

1.序列结构主要有:列表、元组、集合、字典、字符串

创新互联是一家集网站建设,长丰企业网站建设,长丰品牌网站建设,网站定制,长丰网站建设报价,网络营销,网络优化,长丰网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

其中,集合和字典不支持索引、切片和相乘操作

2.切片

访问序列中一定范围的元素

sname[start : end : step]

参数说明:

  • sname:序列名称
  • start:不指定则默认为0
  • end:不指定则默认为序列的长度
  • step:步长,若省略则默认为1

注:若要复制整个序列,中间冒号保留,如verse[:]

3.序列相加

使用“+”将相同类型的序列进行连接,但不去除重复的元素

num1 = [1,2,3]
num2 = [one,tow]
print(num1 + num2)  #>>>[1,2,3,one,tow]

注:相同类型指同为列表、元组、字符串等,序列中的元素类型可以不同

num1 = [1,2,3]
print(num + "输出其和")   #错误
4.乘法
num = [1,2,3]
print(num * 2)   #>>>[1,2,3,1,2,3]

enmpty = [None] * 3
print(empty)    #>>>[None,None,None]
5.检查某个元素是否是序列的成员  in/not in

语法:value in sequence

value即要检查的元素,sequence即指定的序列

返回值:True  /  False

6.计算序列的长度、大值和最小值

长度:len()

大值:max()

最小值:min()

其他内置函数:
  • list() 
  • str()
  • sum()   计算元素和
  • sorted()    对元素进行排序  

sort 与 sorted 区别:

sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象(iterable)进行排序操作。

list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。

list.sort()    list = sorted()

语法: sorted(iterable, key=None, reverse=False)

参数说明:

  • iterable -- 可迭代对象。
  • key -- 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。如,设置“key = str.lower”表示在排序时不区分字母大小写
  • reverse -- 排序规则,reverse = True 降序 , reverse = False 升序(默认)。
返回值

返回重新排序的列表。

sorted([5, 2, 3, 1, 4])
#>>>[1, 2, 3, 4, 5]                      # 默认为升序

#也可以使用 list 的 list.sort() 方法。这个方法会修改原始的 list(返回值为None)。通常这个方法
#不如sorted()方便-如果不需要原始的 list,list.sort()方法效率会稍微高一些。
 a=[5,2,3,1,4]
 a.sort()
print(a)
#>>>[1,2,3,4,5]

#利用key进行倒序排序
 example_list = [5, 0, 6, 1, 2, 7, 3, 4]
 result_list = sorted(example_list, key=lambda x: x*-1)
 print(result_list)
#>>>[7, 6, 5, 4, 3, 2, 1, 0]

#要进行反向排序,也通过传入第三个参数 reverse=True:
example_list = [5, 0, 6, 1, 2, 7, 3, 4]
 sorted(example_list, reverse=True)
#>>>[7, 6, 5, 4, 3, 2, 1, 0]

注:用 lambda 来创建匿名函数:

lambda [arg1 [,arg2,.....argn]]:expression
sum = lambda num1, num2: num1 + num2
 
# 调用sum函数
print "相加后的值为 : ", sum( 10, 20 )
print "相加后的值为 : ", sum( 20, 20 )

#>>>相加后的值为 :  30
#>>>相加后的值为 :  40

  • reversed()    反序序列中的元素
# 字符串
seqString = 'Runoob'
print(list(reversed(seqString)))
 
# 元组
seqTuple = ('R', 'u', 'n', 'o', 'o', 'b')
print(list(reversed(seqTuple)))
 
# range
seqRange = range(5, 9)
print(list(reversed(seqRange)))
 
# 列表
seqList = [1, 2, 4, 3, 5]
print(list(reversed(seqList)))



#>>>['b', 'o', 'o', 'n', 'u', 'R']
#>>>['b', 'o', 'o', 'n', 'u', 'R']
#>>>[8, 7, 6, 5]
#>>>[5, 3, 4, 2, 1]
  • enumerate()   将序列组合为一个索引序列,同时列出数据和数据下标,多用在for循环中
enumerate(sequence, [start=0])       start -- 下标起始位置
>>>seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>>list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>>list(enumerate(seasons, start=1))       # 小标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
#普通的 for 循环
i = 0
seq = ['one', 'two', 'three']
for element in seq:
    print(i, seq[i])
    i += 1
#>>>0 one
#>>>1 two
#>>>2 three

#for 循环使用 enumerate
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):   # i为索引,element为元素值,seq为序列名称
    print(i, element)
#>>>0 one
#>>>1 two
#>>>2 three

二、列表

https://blog.csdn.net/m0_73809176/article/details/127971868?spm=1001.2014.3001.5501

三、元组、字典、集合

https://blog.csdn.net/m0_73809176/article/details/127972422?spm=1001.2014.3001.5501

四、字符串 1.字符串编码? 1.1背景信息

ASCLL码:仅对10个数字、26个大写英文字母、26个小写英文字母,以及一些其他符号进行了编码;(美国标准信息交换码,最早的字符串编码)

GBK、GB2312:是我国制定的中文编码标准,1个字节表示英文字母,2个字节表示中文字符

UTF-8:国际通用编码,1个字节表示英文字母,3个字节表示中文

在Python中,有两种常用的字符串类型,分别为str 和bytes 。其中,str表示Unicode字符(ASCLL或者其他);bytes表示二进制数据(包括编码的文本)。这两种类型的字符串不能拼接在一起用。通常情况下,str在内存中一Unicode表示,一个字符对应若干个字节。但是如果在网络上传输,或者保存在磁盘上,就需把str转换为字节类型即bytes类型。

1.2使用encode()方法编码

用于将字符串转换为二进制数据(即bytes),也称“编码”

语法:str.encode([encoding = "utf-8"][,errors = "strict"])

str:要进行转换的字符串

encoding = "utf-8" :可选参数,用于指定进行转码时采用的字符编码,默认为UTF-8

errors = "strict":可选参数,用于指定错误处理方式,其可选择值可以是strict(默认)(遇到非法字符就抛出异常)、ignore(忽略非法字符)、replace(用“?”替换非法字符)或xmlcharrefreplace(使用XML的字符引用)等

1.3使用decode()方法解码

decode()用于将二进制数据转换为字符串,也称“解码”

bytes.decode([encoding = "utf-8"][,errors = "strict"])

2.字符串常用操作 2.1拼接字符串  “+”

中间不会留空格,相同类型拼接

2.2计算字符串的长度

len(string)

str1 = '人生苦短,我用Python!'
len1 = len(str1)   #包括“,”、“!”
len2 = len(str1.encode())   #计算UTF-8编码的字符串的长度
print(len1)   #>>>14
print(len2)   #>>>28  汉字加中文标点符号共7个,占21个字节,英文字母和英文标点符号占7个字节
2.3截取字符串 2.4分割、合并字符串
  • 2.4.1分割字符串:split()方法--把一个字符串按照指定的分隔符切分为字符串列表

语法:str.split(sep,maxsplit)

sep:用于指定分隔符,可以包含多个字符,默认为None,即所有空字符(包括空格、换行符“\n”、制表符“\t”等)

maxsplit:可选参数,用于指定分割的次数,若不指定或者为-1,则分割次数没有限制,否则返回结果列表的元素个数最多为maxsplit+1

注:若不指定sep,那么也不能指定maxsplit参数

str1 = "我 的 目 标 是 卷 王 >>>kuai.le.xue.xi"
print("原字符串:",str1)
list1 = str1.split()     #采用默认分隔符进行分割
list2 = str1.split(">>>")   #采用多个字符进行分割
list3 = str1.split(".")    #采用“.”号进行分割
list4 = str1.split(" ",4)    #采用空格进行分割,并且只分割前4个
print(str(list1)+"\n"+str(list2)+"\n"+str(list3)+"\n"+str(list4))

"""
原字符串: 我 的 目 标 是 卷 王 >>>kuai.le.xue.xi
['我', '的', '目', '标', '是', '卷', '王', '>>>', 'kuai.le.xue.xi']
['我 的 目 标 是 卷 王 ', ' kuai.le.xue.xi']
['我 的 目 标 是 卷 王 >>>kuai', 'le', 'xue', 'xi']
['我', '的', '目', '标', '是 卷 王 >>>kuai.le.xue.xi']
"""
  • 2.4.2合并字符串:join()方法

语法:newstr = string.join(iterable)

将string加入到iterable后面

str1 = "我的目标是卷王 "
newstr = "@".join(str1)
print(newstr)    #>>>我@的@目@标@是@卷@王@
2.5检索字符串
  • 2.5.1 count()方法--用于检索指定字符串在另一个字符串中出现的次数

语法:str.count(sub[,start[,end]])

str :原字符串

sub: 要检索的子字符串

start:起始位置的索引;end:结束位置的索引

str1 = "我的目标是卷王 "
newstr = "@".join(str1)
print(newstr)    #>>>我@的@目@标@是@卷@王@

print(newstr.count("@")   #>>>7
print("字符串@符号首次出现的位置索引是:",newstr.find("@"))
#>>>字符串@符号首次出现的位置索引是:1

print("判断字符串是否以@符号开头:",newstr.startswith("@"))  
#>>>判断字符串是否以@符号开头:False

  • 2.5.2 find()方法--检索是否包含指定的子字符串。若检索的字符串不存在则返回-1,否则返回首次出现该子字符串的索引

str.find(sub[,start[,end]])

注:若只想判断指定的字符串是否存在,则用关键字“in”。如:print("@"innewstr),若存在就返回True,否则返回False

  • 2.5.3 index()方法--与find()方法相似。只不过使用index()方法,当指定的字符串不存在时会抛出异常。

语法:str.index(sub[,start[,end]])

注:rindex()方法,作用与index()方法相似,只不过从右边开始查找

  • 2.5.4 startswith()方法--用于检索字符串是否以指定字符串开头。返回值为True/False

语法:str.startswith(sub[,start[,end]])

  • 2.5.5 endswith()方法--用于检索字符串是否以指定字符串结尾。返回值为True/False

语法:str.endswith(sub[,start[,end]])

2.6字母的大小写转换

str.lower()   ABC -->abc

str.upper()   abc -->ABC

2.7去除字符串中的空格和特殊字符

这里的特殊字符是指制表符\t、回车符\r、换行符\n等

  • 2.7.1  strip()方法--用于去掉字符串左右两侧的空格和特殊字符

语法:str.strip([chars])

chars: 可选参数,用于指定要去除的字符,可以指定多个

str1 = " .@我爱卷.@.@. \n\r"
print(str1.strip())      #>>>.@我爱卷.@.@.   去除字符串首尾的空格和特殊字符
print(str1.strip("."))   #>>>.@我爱卷.@.@.   注:字符串首是一个空格
str2 = ".@我爱卷.@.@."
print(str2.strip("."))   #>>>@我爱卷.@.@
  • 2.7.2  lstrip()方法--用于去掉字符串左侧的空格和特殊字符

语法:str.lstrip([chars])

  • 2.7.3 rstrip()方法--用于去掉字符串右侧的空格和特殊字符

语法:str.rstrip([chars])

2.8格式化字符串
  • 2.8.1 使用%操作符

语法:"%[-][+][0][m][.n]格式化字符"%exp

参数说明:

- :可选参数,用于指定左对齐,正数2,负数-2(例子啊!)

+ :可选参数,用于指定右对齐,正数+2,负数-2

0 :可选参数,表示右对齐,正数+2,负数-2,用0填充空白处(一般与m参数一起使用)

m :可选参数,表示占有宽度

.n : 可选参数,表示小数点后保留的位数

格式化字符:用于指定类型,其值如下:

%s --字符串(采用str()显示)   %r -- 字符串(采用repr()显示) %c -- 单个字符

%o -- 八进制整数   %d或者%i -- 十进制整数   %e / %E -- 指数(基底写e/E)

%x -- 十六进制整数    %f / %F -- 浮点数   %% -- 字符%

exp : 要转换的项

tem = "编号:%09d\t公司名称: %s\t官网: http://www.%s.com"  #定义模板
contex = (7,"百度","baidu")
print(tem % contex)
#>>>编号:000000007	公司名称: 百度	官网: http://www.baidu.com
#注:09代表右对齐,用0填充空白处,占位9个宽度  d表示%d,十进制整数  \t制表符
  • 2.8.2 使用字符串对象的format()方法

语法:str.format(args)

str 用于指定字符串的显示样式(模板)用“{}”和“:”指定占位符,

格式:{[index][:[[fill]align][sign][#][width][.precision][type]]}

index : 可选参数,索引位置

fill:可选参数,用于指定空白处填充的字符

align:可选参数,用于指定对齐方式(值为“<”表示内容左对齐;“>”表示内容右对齐;“=”表示内容右对齐,将符号放在内容的最左侧,且只对数字类型有效;“^”表示内容居中对齐),需要配合width一起使用

sign:可选参数,用于指定有无符号数(值为“+”表示+2,-2;值为“-”表示2,-2;值为空格表示正数加空格,负数加负号)(这的2是举的例子)

#:可选参数,对于二、八、十六进制,若加上#表示会显示0b/0o/0x前缀,否则不显示

width:可选参数,表示占有宽度

.precision:可选参数,用于指定小数点后保留的位数

type:可选参数,用于指定类型,其值如下:

S -- 对字符串类型格式化   b -- 将十进制-->二进制表示再格式化

D -- 十进制整数   o -- 将十进制-->八进制表示再格式化

C -- 将十进制-->Unicode字符   x / X -- 将十进制-->十六进制表示再格式化

e / E -- 转换为科学计数法表示再格式化   f / F -- 转换为浮点数表示再格式化

g / G --自动在e和f或者E和F中切换    % -- 显示百分比

args用于指定要转换的项

https://blog.csdn.net/m0_73809176/article/details/127984059?spm=1001.2014.3001.5501

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享名称:python-重点!!序列:列表、元组、集合、字典、字符串-创新互联
标题链接:http://cdkjz.cn/article/cejhoj.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220