################################第二节################################################
python中数据类型的常见的方法

第一个数据类型 字符串 str
字符串里面有很多的功能,叫方法.只要是字符串,就可以用里面的方法,方法有很多,不用刻意的去记住,因为你以后会常
用到.另外如果你用了一个好的编辑器的话,他会有提示的.

介绍一下几个

1.capitalize 首字母大写,而且会吧不是首字母的大写的字母给变成小写
liu = 'handSome'
print(liu.capitalize)
>>> Handsome
2.casefold 这个比较牛逼,把大写变为小写,但是他可以变化非字母的比如德语的大小写,如果是中文,除外

3.lower 这个和上面的一样,变为小写,但是只能转换英文字母的

4.upper 这个是变成大写的

5.center 字符串居中 这个可以接受两个参数,一个是多少,一个是字符分隔,(至少一个参数)
liu = 'liukang'
print(liu.center(20,"*"))
>>> ******liukang*******
##20代表输出的长度等于20,'*'代表是以什么填充,如果不写,默认是空格

6.count 统计出现的次数,可以接受三个参参数,一个是要查找的字符(必须有),
另外两个是从哪里开始查,到哪里结束(可以省略)
liu = 'llliukkkaang'
print('l',3)
>>>> 0

7.endswith 这个是查看是否已制定的字符串结尾,返回的是bool值 ##startswith 这个是查开头的
liu='liukang'
print(liu.endswith('s'))
>>> False

8.expandtabs 这个是转换的,就是把字符串里面的'\t'转换成你想要的空格数,默认是八个空格
liu='liu\tkang'
print(liu.expandtabs(3))
>>>liu kang

9.find 这个是查找字符串的位置的找到就返回位置所在,找不到就返回-1.这个比index好些.index也是查找的,
但是找不到会报错.find接受三个值,一个是字符串,另外两个是开始和结束的位置.
还有一个方法,rfind,这个从右边开始查找的.
>>> liu='liukang'
>>> print(liu.find('l'))
0
>>> print(liu.find('3'))
-1
10.index 查找字符串的位置,找不到的话会报"ValueError: substring not found"
这个接受三个值,一个是字符串,另外两个是开始和结束的位置
rindex:一样,不过是从右边开始.

11.format 这个也是字符串的格式化,一前用的是%s,如果用它的话,要在字符串里面这么写
liu= 'name:{name},sex:{sex}'
或者:
liu = 'name:{0},sex:{1}'
format对应的写法分别是:
1. >>> liu='name:{name},sex:{sex}'
>>> print(liu.format(name='liukang',sex='man'))
name:liukang,sex:man
2. >>> liu='name:{0},sex:{1}'
>>> print(liu.format('liukang','man'))
name:liukang,sex:man

12.format_map 这个也是字符串的格式化,不过传入的是个字典,而且字符串里不能用数字来表示 了.
>>> liu = 'name:{name},sex:{sex}'
>>> print(liu.format_map({'name':'liukang','sex':'man'}))
name:liukang,sex:man

13.isalnum 判断字符串里有没有空格,有的话是False,没有事True
liu = 'liu'
print(liu.isalnum())
True

14.isalpha 这个是查看字符串是否全为字母,是的话为True,否则为False
liu='w12'
print(liu.isalpha())
False

15.isdecimal 这个就是查看字符串是不是数字 返回的是bool值,是的话为True,这个最常用了.下面两个,但当了解

16.isdigit 这个也是可以识别是不是数字,但是他还包含了这种的'②'.

17.isnumeric 这个也是识别数字的,但是她可以识别 这几种'123','二','②'

18.isspace 这个是查看字符串是不是全是空白字符,如果是返回True,

19.istitle 这个是查看单词的首字母是不是大写的.是的话为True.

20.isupper 这个是查看字符串是不是都是大写的.是的话返回True.

21. join 这个是星级应用 ,这个是用来链接字符串的. 这个很省内存
>>> liu='liukang'
>>> a='_'.join(liu)
>>> print(a)
l_i_u_k_a_n_g

22.ljust 这个对字符串想做边填充,可以接受两个参数,一个是宽度(必须),另一个是符号(默认为空格)
#######这个填充的是安照你填充字符的左右为基准.########
>>> liu='liukang'
>>> print(liu.ljust(20,"*"))
liukang*************

23.rjust 这个的功用和上面一样,不在赘述.

24.maketrans + translate 这个是对应关系+翻译,
>>> liu='123kang'
>>> a= str.maketrans('123','liu') #这个是先定义好对应的关系
>>> print(liu.translate(a)) #这个是根据对应的关系进行转变
liukang

25.partition 这个和split功能一样,也是分区,但是他会保留你分区的依据.
>>> liu='123|kang'
>>> print(liu.partition('|'))
('123', '|', 'kang')

rpartition: 这个是从右边开始的.不在赘述

27.replace 这个是替换.
>>> liu='123|kang'
>>> print(liu.replace('123','liu'))
liu|kang
28.split 这个是分割返回一个列表,接受两个参数,一个是分割依据,一个是分割几次,(可以都不写,)
liu='liu|kang'
print(liu.split('|'))

###rsplit 这个代表从右边开始切割,用法同上

29.strip 脱去两边的空格,和换行符. ###这个还有其他衍生的 rstrip,lstrip 用法同strip
liu=' liu kang\n'
print(liu.strip())
liu kang

30.swapcase 这个是大小写交换

31.title 这个是吧每个英文字母的开头变为大写

####################################int 整数####################################
我感觉这个没啥好说的,看了看里面的用法,基本上不常用,所以就不在解释了,
int是不可变类型

####################################bool 布尔值####################################
True
False 空/0

####################################list 列表####################################
liu=[11,22,33,44,55,]
1.append 追加,
liu=[]
liu.append('liu')
2. expand 追加一个列表
liu.extend(['liu','kang','lisi'])

3.clear 清空一个列表
liu.clear()
4.copy 浅拷贝
new = liu.copy()
print(new)
5.count 统计某个元素的个数
print(liu.count(11)) #统计11出现的次数
6.index 这个是索引位置的接受三个值, 一个是所以的value,另外两个是开始和结束的位置(可以不写)
print(liu.index(11))

7.insert 插入
接受两个值,一个是索引的位置,一个是值,
liu.insert(0,'liukang')
print(liu)
8.pop 删除掉里面的元素,并且可以获取到删除的元素,里面写索引
a=liu.pop(0)
print(liu)

9.remove 删除掉里面元素,但是获取不到值
a=liu.remove('11')
print(a)
>>>None

10.reverse 颠倒列表
print(liu.reverse())
11.sort 排序
print(liu.sort())

其他附带的内容 range enumerate
range 在3里发生了改变,他不在生产一个列表,而是一个范围.减少了内存的占用
want = ['liu','kang','lisi','zhangsan']
for i in range(len(want)):
print(i+1,want[i])

enumerate 可以可以生成一个带序号的列表,底下的1的意思是说从哪个数字开始
例子:
want = ['liu','kang','lisi','zhangsan']
for i in enumerate(want,1):
print(i)

################################元组 tuple################################################

元组是个不可变的类型,一旦创建好,就定型了.

他和列表类似,只是'型似'
元组:
user_tuple = ('alex','eric','seven','alex') #不可变
列表:
user_list = ['alex','eric','seven','alex'] #可变

####在创建列表的时候建议这么创建:
user_tuple2=('sever,') ##如果不加逗号的话,会认为是字符串,

方法:
1. count 统计里面元素的个数
user_tuple.count('alex')
2. index 查找里面的元素的索引位置.如果有多个,只返回第一个,如果没有回报错
user_tuple.index('alex')

################################字典 dict################################################
字典就是个键值对,键必须是可哈希的.生么是可哈希的呢,简单来说就是不可变的东西,
如果一个对象是可变的,如:列表,字典,集合, 那么他就不可以进行哈希.

dic = {'k1':'v1','k2':'v2','k3':'v3'}

1.clear 清空字典
dic.clear()
2.copy 拷贝字典(浅拷贝)
a = dic.copy

3.get 根据指定的key 获取value,可以接受两个参数,一个是key,另一个是指定的value,当这个key有值的时候,
返回字典里的value,否则返回第二个参数
dic.get('k1','liukang')
dic.get('k','liukang')

4.pop 删除对应的值,并且获取到,可以接受两个值,一个是有key的情况,一个是没有key的情况
>>> dic={'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
>>> a = dic.pop('k1')
>>> a
'v1'
>>> a = dic.pop('k','liukang')
>>> a
'liukang'
5.popitem 随机删除一个key,并且获取到删除的键值,如果删除没了的话,会报keyError的错误.
>>> dic={'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
>>> a = dic.popitem()
>>> a
('k3', 'v3')
6.setdefault 增加,如果有的话不改变,没有的进行添加.
>>> dic
{'k1': 'v1', 'k2': 'v2'}
>>> dic.setdefault('k1','2')
'v1'
>>> dic
{'k1': 'v1', 'k2': 'v2'}
>>> dic.setdefault('k3','2')
'2'
>>> dic
{'k1': 'v1', 'k2': 'v2', 'k3': '2'}

7.update fromkeys: 批量添加或者修改,
dic['k1']='change' ##修改

dic.update({'k3':'v3','k1':'v24'}) #批量添加

dic = dict.fromkeys(['k1','k2','k3'],[1,]) #批量添加同一个值,但是如果修改其中任意
一个key的话,其他的key的value也会发生改变

################################集合 set################################################
不可重复,但是是个可变的集合

s1 = {"alex",'eric','tony',}
s2 = {"alex",'eric','tony','jack'}

1.difference 比较里两个集合里的东西
>>> a=s2.difference(s1) ##s2中存在,s1中不存在的
>>> a
{'刘一'}

4.intersection 交集
s1.intersection(s2)

5.union 并集
s1.union(s2)
6.discard 移除
s1 = {"alex",'eric','tony','李泉','李泉11'}
s1.discard('alex')

7.update 批量添加
s1.update({'alex','123123','fff'})

以上就是pyhton中用到的数据类型的方法,不尽之处还请包涵.

pythion 第二弹的更多相关文章

  1. 浅谈Hybrid技术的设计与实现第二弹

    前言 浅谈Hybrid技术的设计与实现 浅谈Hybrid技术的设计与实现第二弹 浅谈Hybrid技术的设计与实现第三弹——落地篇 接上文:浅谈Hybrid技术的设计与实现(阅读本文前,建议阅读这个先) ...

  2. 前端学习 第二弹: JavaScript中的一些函数与对象(1)

    前端学习 第二弹: JavaScript中的一些函数与对象(1) 1.apply与call函数 每个函数都包含两个非继承而来的方法:apply()和call(). 他们的用途相同,都是在特定的作用域中 ...

  3. 青瓷引擎之纯JavaScript打造HTML5游戏第二弹——《跳跃的方块》Part 10(排行榜界面&界面管理)

    继上一次介绍了<神奇的六边形>的完整游戏开发流程后(可点击这里查看),这次将为大家介绍另外一款魔性游戏<跳跃的方块>的完整开发流程. (点击图片可进入游戏体验) 因内容太多,为 ...

  4. typecho流程原理和插件机制浅析(第二弹)

    typecho流程原理和插件机制浅析(第二弹) 兜兜 393 2014年04月02日 发布 推荐 1 推荐 收藏 14 收藏,3.7k 浏览 上一次说了 Typecho 大致的流程,今天简单说一下插件 ...

  5. LCA问题第二弹

    LCA问题第二弹 上次用二分的方法给大家分享了对 LCA 问题的处理,各位应该还能回忆起来上次的方法是由子节点向根节点(自下而上)的处理,平时我们遇到的很多问题都是正向思维处理困难而逆向思维处理比较容 ...

  6. 线段树+RMQ问题第二弹

    线段树+RMQ问题第二弹 上篇文章讲到了基于Sparse Table 解决 RMQ 问题,不知道大家还有没有印象,今天我们会从线段树的方法对 RMQ 问题再一次讨论. 正式介绍今天解决 RMQ 问题的 ...

  7. Hadoop基础-MapReduce的工作原理第二弹

    Hadoop基础-MapReduce的工作原理第二弹 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Split(切片)  1>.MapReduce处理的单位(切片) 想必 ...

  8. 『PyTorch』第二弹重置_Tensor对象

    『PyTorch』第二弹_张量 Tensor基础操作 简单的初始化 import torch as t Tensor基础操作 # 构建张量空间,不初始化 x = t.Tensor(5,3) x -2. ...

  9. Java基础-程序流程控制第二弹(循环结构)

    Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...

随机推荐

  1. Ubuntu 重装 mysql

    我另篇blog有提到修改完my.cnf文件后mysql server重新启动失败,就是说mysql server启动不起来了,于是我就想到重装再试试,没想到就好了. 重装mysql之前需要卸载干净,删 ...

  2. ABPZero中的Name和SurName处理

    使用ABPzero的朋友们都知道,User表中有Name和Surname两个字段,这两个字段对于国内的用户来说相当的不友好. 我们在尝试了很多的方法之后,发现无法完美将他们干掉. 所以尝试使用了一个比 ...

  3. js的break语句,continue语句,return语句

    js的break语句,continue语句,return语句. 用的时候很容易混淆,有过一次泪奔的经历. break语句 break语句会使运行的程序立刻退出包含在最内层的循环或者退出一个switch ...

  4. MidpointRounding 枚举值简要说明

    1. MidpointRounding.AwayFromZero 当小数点后取舍时5 时会取绝对值大的如 4.5 会取5 及正常的4舍5入. -- 官方解释翻译解释取绝对值小值感觉反译错了. 2.Mi ...

  5. 获取camera截屏图片

    Camera camera; SpriteRenderer sprRender; Texture2D t2d = New Texture2D(1300, 760, TextureFormat.RGB2 ...

  6. uc广告过滤你能更坑点不

    背景: 搞的手机站要上线,电脑测试木有问题,拿手机访问,有个页面始终不正常, 其他的 windows phone 的正常, ios 的也正常 就唯独 ,用的是安卓,uc的浏览器显示有问题 我勒个去,那 ...

  7. openMP编程(下篇)之数据私有与任务调度

    title: openMP编程(下篇)之数据处理子句与任务调度 tags: ["openMP"] notebook: 分布式程序_Linux --- openMP并行编程中数据的共 ...

  8. IDEA第四章----配置模板

    idea提供很多模板从而提高编写代码的效率,比如说一些经常用的代码及生成文件时的模板. 第一节:实时代码模板 顾名思义,实时代码模板是指在编写程序中输入一段固定的字母可以快速生成自己想要的代码,例如: ...

  9. spark2.0系列《一》—— RDD VS. DataFrame VS. DataSet

    虽说,spark我也不陌生,之前一直用python跑的spark,基本的core和SQL操作用的也是比较熟练.但是这一切的基础都是在RDD上进行操作,即使是进行SQL操作也是将利用SpaekConte ...

  10. Start to write blogs 【开始写博客】

    I used to be lazy and wrote no blogs. I used to live at leisure and wasted opportunity. Time flies, ...