pythion 第二弹

################################第二节################################################
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中用到的数据类型的方法,不尽之处还请包涵.

时间: 2024-11-05 10:29:00

pythion 第二弹的相关文章

《我与希乐仑》第二弹

致徐敏: 如果你觉得我的这篇报道侵害了你和贵公司的权益,你可以上法院告我,但我说的都是事实,不怕你告,有事找我律师,谢谢! 我是希乐仑科技发展(上海)有限公司前员工,曾经为希乐仑立下汗马功劳.这公司从2014年2月份开始搞我,我去年的绩效是3.8/5.0,完全没有绩效问题.他们倒好,自从我查完我们公司某商业间谍之后,就给我穿小鞋,说我这个不好,那个拖延,这不是扯淡吗?公司在3月5日非法把我裁掉,而且直到现在还未支付我2月份工资,行吧,那我就不再沉默了,当我吃素的是吧!我现在把这件事情公之于众,望

深究angularJS系列 - 第二弹

深究angularJS系列 - 第二弹,在初步了解了Angular的基础上,进一步的针对Angular的控制器和作用域问题深入探究O(∩_∩)O~~ Angular控制器 控制器(Controller)的理解 控制器是对view的抽象,用来接收view的事件,响应view的请求: 控制器包含view的静态属性和动态的方法: 控制器与view是一对一的关系. 控制器(Controller)的结构 1 .controller("控制器的名字",function($scoppe){ 2 ..

C/C++中容器vector使用方法<第二弹>

此文总结常用vector操作,是前一篇的续作!只有代码,详细请看代码中的注释.出于反爬虫的目的,你不是在http://blog.csdn.net/zhanh1218上看到的,肯定不是最新最全的. /********************************************************************* * file_name: vector_test.cpp * * Created on: 2014年6月28日 下午3:34:23 * Author: The_T

线段树第二弹(区间更新)

上篇文章,我们介绍了线段树的基本概念和单点更新.区间查询,今天,我们来接着上次的线段树问题继续深入研究.在解决线段树问题的过程中,我们会遇到要求修改区间中某一元素值的问题,当然也可能会遇到要求修改一段子区间所有值的问题--即区间更新问题.回忆一下上篇文章单点更新的方法是,由叶节点逐级向上进行更新,此时更新一个节点值的时间复杂度为o(log n),(点击链接了解详情:线段树+RMQ问题第二弹),那么以这样的处理效率来进行区间更新结果会怎样?现在假设待更新区间数据的规模为 n ,那么就需要进行 n

MongoDB第二弹——基本操作

1 查看各个项目的Project ID编号 mysql -uroot -h10.10.2xx.xx show databases; use bugfree2; desc bf_TestProject; select ProjectID,ProjectName from bf_TestProject;(查询结果如下) 2 在/var/www/html/bugfree/BugFile路径下创建文件夹 mkdir Project2  Project3  Project4  Project5  Proj

黑马程序员:赶紧下载iOS10开发教程第二弹

虽然6月13日WWDC2016的发布会结束了,但是本届大会的开发者session环节还在持续进行着.黑马程序员本着对技术的狂热,对学生负责的态度,仍然坚持每天对课程进行深入的研发.本文主要是黑马程序员对iOS 10 中SDK所更新的主要内容进行总结.根据黑马程序员惯例,在文章的最后,有相关相关教学视频及Demo会有分享链接,供各位下载! 1.Grand Center Dispatch GCD 在本次一更新主要有以下内容: ?创建私有队列 ?安排异步执行的工作项目(items) ?GCD能自动将工

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

typecho流程原理和插件机制浅析(第二弹) 兜兜 393 2014年04月02日 发布 推荐 1 推荐 收藏 14 收藏,3.7k 浏览 上一次说了 Typecho 大致的流程,今天简单说一下插件机制和插件的编写方法. 还是先上index.php if ([email protected]include_once 'config.inc.php') { file_exists('./install.php') ? header('Location: install.php') : print

日均百万PV架构第二弹(缓存时代来临)

上一弹中我们规划并搭建了基本的架构组成,当然此架构存在诸多问题,我们在接下来的章节中将不断 完善其功能特性,使之成为实至名归的百万PV架构站点   首先来对上一弹架构做基本的ab 并发100, 总量2000的测试,让我们对站点性能有所熟知,之后在之前的功能上我们添加多道 缓存对性能进行提升. (ps: 测试机器均为虚拟机环境 , 大约性能比主流服务器低 2.5 - 3.5 倍 , 测试参 数可做此对比评估) 按照规划,我们在salve3.king.com中添加两实例的varnish,在slave

AndroidStudio使用教程(第二弹)

AndroidStudio使用教程(第二弹) 迁移Eclipse工程到Android Studio 官方文档中说Android Studio可以兼容Eclipse的现有工程,但需要做一些操作: Eclipse进行项目构建 首先升级ADT到最新版本, 好像是22之后,选择需要从Eclipse导出的工程,右键选择Export并选择Android下的Generate Gradle Build Files, 运行完成之后你会发现在项目目录中多了一个build.gradle, 这就是Android Stu