map语法获取index_研一小姑娘分享干货——python基础语法之数据类型

列表

基本概念

· 列表是有序的元素集合,所有元素放在一堆中括号中,用逗号隔开,没有长度限制;

· 列表索引值以0位开始值,-1为从末尾的开始位置;

· 列表可以使用+操作符进行拼接,使用*表示重复;

· 当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙

列表元素可以通过索引访问单个元素

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

a[3] = 6

a[0] =4

列表

· 列表可以完成大多数集合类的数据结构实现;

· 列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)

列表元素修改

· 列表大小没有限制,可以随时修改;

· 列表元素可以随时修改

列表基本操作

c289328f8b2bdd5936f40bbdd7bf2791.png

列表相关方法

f90a607d0e3f43563e718f879b9b2fd7.png

利用索引访问列表

列表常用方法

append() 在列表后面追加元素

insert( ) 在列表指定位置插入元素

extend( ) 在列表后面追加列表

pop( ) 不带元素,默认返回列表最后一个元素并删除,若有指定元素,返回指定元素并删除

remove( ) 删除第一个指定元素,没有返回值

sort( ) 按大小进行排序,或按字符串顺序进行排序

reverse( ) 翻转,首尾交替

count( ) 计算元素出现次数

index( ) 返回某元素在列表中第一次出现的索引值

列表推导式

0b8054debd58170fad0c7d9470774e7a.png

元组

基本概念

· 元组(tuple)是包含多个元素的类型,元素之间用逗号分割,如t1 = (123,456,"hello");

· 可以通过把若干元素放在一对圆括号中创建元组,如果只有一个元素的话则需要多加一个逗号,如(3,);

· 也可以使用tuple( )函数把列表,字典,集合,字符串以及range对象,map对象,zip对象或其他类似对象转换为元组;

· 元组可以是空的,t2 = ( );

· 一个元组也可以作为另一个元组的元素(嵌套)此时,作为元素的元组需要增加括号,从而避免歧义;

· 元组中各元素存在先后关系,可以通过索引访问元组中元素;

· 元组定义后不能更改,也不能删除;

· 与字符串类型类似,可以通过索引来访问元组中的部分元素;

· 与字符串一样,元组之间可以用+号和*号进行运算

元组与列表的区别

· 元组是不可变的,不能直接修改元组中的值,也不能为元组增加或删除元素,因此,元组没有提供append()/extend()/insert()等方法,也没有remove()/pop()方法;

· 元组的访问速度比列表更快,开销更小,如果定义了一系列常量值,主要用途只是对它们进行遍历或其他类似操作,那么一般建议使用元组而不使用列表;

· 元组可以使得代码更加安全,例如,调用函数时使用元组传递参数可以防止在函数中修改元组,而使用列表则无法保证这一点;

· 元组可用作字典的键,也可以作为集合的元素,但列表不可以,包含列表的元组也不可以

生成器表达式

gen = [2**i for i in range(64) ] #创建生成器,只能使用一次,然后失效

切片操作

· 适用于列表和元组;

· 切片是用来获取列表,元组,字符串等有序序列中部分元素的一种语法,在形式上,切片使用2个冒号分隔的3个数字来完成;

· [start:end:step]

· 其中第一个数字start表示切片开始位置,默认为0;第二个数字end表示切片截止(但不包含)位置(默认为列表长度);第三个数字step表示切片的步长(默认为1),省略步长时还可以同时省略最后一个冒号;

· 当step为负整数时,表示反向切片,这时start应该在end的右侧

90f58481375111cb51d2b9080856176c.png

字典

基本概念

· 字典是无序的对象集合,使用键-值(key-value)存储,具有极快的查找速度

· 键(key)必须使用不可变类型

· 同一个字典中,键(key)必须是唯一的

· 字典的每个键值对(key→value)用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{ }中,格式如下所示:

· dic = {key1 : value1 , key2 : value2}

常用方法

6eea2fbc768ad8d016b9b683c276058c.png

· 字典键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一

创建字典:基础语法方式

· 字典中值可以取任何数据类型,但键必须是不可变的如字符串,数字或元组

· 如:dict = {' Alice':'2341','Beth':'9102','Cecil':'3258'}

· 也可如此创建字典

· 如:dict1 = {'abc':456};

· dict2 = {'abc':123,98.6:37}

· 创建字典:dict函数

· 使用dict函数,通过其他映射(比如字典)或者(键,值)序列对创建字典

278885f5661413537bd33d2ca6ada679.png

(其中圆括号为元组,元组中有两个元素,分别对应键和值)

· dict函数也可以通过关键字参数来创建字典

c9d2905fecc954cb6f9072cf4d5092dc.png

(等号前后分别是键和值)

字典元素修改、添加与删除

1  当以指定"键"为下表为字典赋值时,有两种含义:1)若该"键"存在,表示修改为该"键"对应的值;2)若该"键"不存在,表示添加一个新元素;

2  使用字典对象update()方法可以将另一个字典的元素一次性全部添加到当前字典对象,如果两个字典中存在相同的"键",则以另一个字典中的"键"为准对当前字典进行更新;

3  可以使用字典对象的pop()删除指定"键"对应的元素,同时返回对应的"值";

4  popitem()方法用于删除字典的一个键值对,并返回一个包含两个元素的元组,其中的两个元素分别是字典元素的"键"和"值";(默认删除最后一对)

5  也可以使用del删除指定的"键"对应的元素;

集合

概述

· python集合是无序,可变的容器对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的,不允许重复

· 集合中只能包含数字,字符串,元组等不可变类型的数据,而不能包含列表,字典,集合等可变类型的数据,包含列表等可变类型数据的元组也不能作为集合的元素

· 集合中的元素是无序的,元素存储顺序和添加顺序并不一致

· 集合不支持使用下标直接访问特定位置上的元素(索引),也不支持使用random中的choice()函数从集合中随机选取元素(切片),但支持使用random模块中的sample()函数随机选取部分元素

集合常用方法

· s = add(x): 将元素x 添加到集合s中没如果元素已存在,则不进行任何操作

· s = update(x): 将x的元素添加到集合s中,x可以是列表,元组,字典等

· s.pop(x): 随机删除集合中的一个元素

· s.remove(x): 将元素x从集合s中移除,如果元素不存在,则会发生错误

· s.discard(x): 将元素x从集合s中移除,如果元素不存在,不会发生错误

7. 字符串

概述

· 字符串(str)使用双引号""或单引号''括起来的一个或多个字符

· 字符串可以保存在变量中,也可以单独存在

· 字符串术语不可变对象,所有方法都是返回处理后的字符串或字节后,不对原字符串进行任何修改

· 可以用type()函数测试一个字符串的类型

· 字符串是一个字符序列,字符自最左端位置标记为0,依次增加,字符串的编号叫做"索引"

转义

· python语言转义符:。在字符串中表示转义,即该字符与后面相邻的一个字符共同组成了新的含义

· 输出带有引号的字符串,可以使用转义符

· 使用输出带有转义符的字符换

· 用转义符可以在字符串中表达一些不可直接打印的信息,例如:用表示换行;表示制表符

字符串操作

· 单个索引辅助访问字符串中的特定位置。格式为[]

· python中字符串索引从0开始,一个长度为L的字符串最后一个字符的索引值为L-1

· python同时允许使用附属从字符串右边末尾位置向左边进行反向索引,最右侧索引值是-1

· 可以通过两个索引值确定一个位置范围(切片),返回这个范围的子串,字符串的切片格式:[:]

· start和end都是整数型树脂,这个子序列从索引start开始知道索引end结束,但不包括

· end

· 字符串之间可以通过+或*进行连接

· 加法操作将两个字符串连接成为一个新的字符串

· 乘法操作生成一个由其本身字符串重复连接而成的字符串

· x in s:如果x是s的子串,返回TRUE,否则返回FALSE

· str[N:M]:切片,返回子串

· len()函数返回一个字符串的长度

· 大多数数据类型都可以通过str()函数转换为字符串

字符串遍历操作

· 可以通过for和in组成的循环来遍历字符串中每个字符

· for in :

· 字符串处理方法

27d2bddeb89c78ba7f6c47a7c9752ef2.png

常用方法

· index(x)(从左开始索引),rindex(x)(从右开始索引):检测x是否包含在字符串中,返回相应的索引值,如果不存在,返回异常

· count(x):返回str在string中出现的次数

· replace(str1,str2,[,max]):把该字符窜中str1换成str2,如果max指定,则替换不超过max次

· maketrans():创建字符映射的转换表

· translate(str):根据str给出的映射转换表转化string字符

beaece8d01c85d3413bceafe307b3b3e.png

· ljust(width[,fillchar]):返回一个原字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格。rjust()(右对齐),center()(居中)类似。

8bcc4c897e24413647a258c5df34c57b.png

· split(str = "",num = string.count(str)),其中num = string.count(str)以str为分隔符截取字符串,如果num有指定值,则仅截取num+个子字符串。rsplit()类似,从右侧开始截取。

· join(seq):以指定字符串作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串

a9c293c0c453684f55167b97fc0408de.png

· lower():全部小写输出

· upper():全部大写输出

· capitalize():只有首词首字母大写输出

· title():每个词首字母大写输出

· swapcase():将原字符串大小写互换输出

· startswith()、endswith():检查字符串是否以指定子字符串substr开头或结束,是则返回True

· strip()、rstrip()、lstrup():截取子串的指定字符(左、右、中)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值