python第二章节---序列

序列

什么是序列

就像是C中的array一样,在内存空间储存形式为占用一连串的地址

序列有哪些种类

列表、元组、字典、集合、字符串

序列的通用操作

1.索引

索引:0开始,n-1结束
或者:-(n-1)开始,-1结束

2.切片

seq[start : end : step] #包括开始位置但不包括结束位置,step指步长
seq[0:]
seq[1:2]
seq[-(n-1):-1]

3.加法

seq1+seq2 只有相同的序列类型才可以相加,即列表与列表相加,元组与元组相加
相加的结果则是序列的拼接

4.乘法

seq * int 相乘的结果是序列重复拼接int次

5.成员运算符

object in seq 判断object 是否在seq中,返回布尔值
object not in seq 判断object是否不在seq中,返回布尔值

列表

1.创建

普通方法

直接赋值:list = [“1”,“2”]
或者空列表:list = []
list函数 : list(“123456”)

列表推导式

[expression for var in list]
[expression for var in range()]
[expression for var in lsit if condition]

2.增

上述的加法可以实现增加元素或者列表(该方法运行速度比较慢)
或者列表对象的方法list.append(object) #该方法在列表最后添加元素
或者列表对象的方法list.insert(object) #在列表指定位置添加元素
拼接列表时还可以list.extend(list2) #将list2的所有元素添加到list中

3.删

删除列表:del listname #该方式只是将列表名与内存空间截断了而已,实际放在内存中的数据没有被释放
根据元素的索引删除元素:del list[index]
根据元素的值删除元素:list.remove(object)

4.改

改变列表或者元素:都是选择然后重新赋值,是先选择确定的列表或者元素然后赋值

5.查

索引法
切片
列表对象的方法:list.count(object) #统计元素出现的次数,返回0则表示没有该元素
获取元素的index:list.index(object) #此时返回的index是第一个遇到的元素的index,费多个相同object
遍历

for item in tuple:
	print(item)

for index,item in enumerate(tuple):
	print(index,item)

6.排序

sort #列表对象的方法,改方法会改变源列表
sorted #python内置函数,返回的是一个copy,源列表不会改变

二维列表

类似于C中的二维array
类似于pandas中的2维ndarray
[[ … ],
[ … ],
[ … ]]
上面的列表形式就是个二维列表,可以想象为3行多列的数据框

与一维列表的异同点

索引有些差别,二维列表的索引list[1]:表示索引第二行
list[1][1] :表示索引第二行,第二列

元组

小括号括起来的序列,其中元素是不可以改变的

1.创建

直接赋值,注意只有一个元素时,元素后还要加一个逗号
函数tuple()
空元组:括号
推导式:类似于列表推导式

2.改

只有整体重新赋值才可以改变元组
注意只要是序列都可以有加法运算

3.删

del方法删除整个元组

4.查

索引
切片
遍历

for item in tuple:
	print(item)

for index,item in enumerate(tuple):
	print(index,item)

字典

无序键值对,键和值一一对应,键是唯一的不可变的,值可以是任意类型的数据

创建

直接赋值:dictionary = {“key1”:“value1”,“key2”:“value2”}
空字典:dictionary = {}
序列之间的映射关系:dictionary = dict(zip(list1,list2))
序列之间的映射关系2:dictionary = dict(tuple:list) #注意字典的键是唯一不变的
数值的对应关系:dictionary = dict(key1=value1,key2=value2,key3=value3)
创建只有键没有值的字典:dictionary = dict.fromkeys(list) #list中的元素作为字典的键,value默认为None
字典推导式:{i:random.randint(10,100) for i in range(1,5)} #仅是个范例

直接赋值:dictionary[key] = value #注意如果源字典中包含了key,则会变成重新赋值
不支持索引切片和加法乘法

del dictionary[key]
dictionary.clear() #清空所有value

重新赋值

无法切片,无法索引
dictionary[key]
dictionary.get(key)
遍历字典

dictionary.items() 			#返回的是键值对的元组列表,即键值对组成元组,所有的键值对又组成列表
for items in dictionary.items():
	print(items)

for key,value in dictionary.items():
	print(key,value)

集合

大括号括起来的序列,元素之间没有重复,而且无序

创建

直接赋值:set = {1,2,3}
函数:set()

setname.add(object)
不支持加法

setname.remove(object) #删除一个指定元素
setname.clear() #清空集合

成员运算符判定

集合的交差并集的运算

交集 set1 & set2
并集 set1 | set2
差集 set1 - set2
对称差集 set1^set2 #集合1与集合2中所有不属于set1 & set2的元素的集合

字符串

基本上所有的程序或者脚本从运行开始到结束都是在处理字符串

创建

单引号或者双引号或者三引号界定

索引

第一个字母的索引为0

切片

string[start:[end] [ : step]]

split()

string.split(sep,maxsplit) #sep指分隔符,不指定则默认为空格、tab、换行符等,而且多个重复出现的默认的分隔符算做一个
#指定sep后,连续出现的分隔符每个都起作用,返回空值
#结果返回一个分隔符不在内列表,分隔符分割的每个元素都是列表的元素,包括空值

string.rsplit() #从字符串的右边开始分割

find()

string.find(sub[,start[,end]]) #在staring中找sub,返回首次出现改字符串的索引,未找到则返回-1
string.rfind(sub[,start[,end]]) #从右开始在staring中sub,返回首次出现改字符串的索引,未找到则返回-1

count()

string.count(sub[,start[,end]]) #在string中计算sub出现的次数,未找到则返回0

join()

字符串拼接我们可以利用加号“+”实现
string.join(iterable) #其中string指定连接符,iterable指定可迭代的对象

strip()

string.strip([chars]) #在中括号中指定要去除的字符合集,字符之间是或者的关系
#默认去除换行符、回车、tab、空格
string.lstrip([chars]) #去掉左侧的空格或者特殊字符
string.rstrip([chars]) #去掉右侧的空格或者特殊字符

startswith()

string.startswith(prefix[,strat[,end]])

endswith()

string.endswith(suffix[,satrt[,end]])

大小写转换

str.lower()
str.upper()

格式化输出

模板.format(string)
要转换的string可以是多个,使用逗号进行分割

模板可以使用大括号{}以及冒号:指定占位符
{[index] [ : [[fill]align] [sign] [#] [width] [.precision] [type] ]}
index : 指定要转换的string在参数列表中的索引位置,索引从0开始
fill : 指定空白处填充的字符
align:用于指定对齐方式,> 左对齐 < 右对齐 ^ 内容居中,align要与width一起使用
sign:正负号
#:
width:用于指定所占宽度
.precision:指定保留的小数位数
type:用于指定类型

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值