python数据类型之内置方法
python有六大数据类型,分别为整型、字符串、列表、字典、元祖和集合,这些基本数据类型都内置了很多方法,接下来一一探寻。
python中整型有两种:int和float
1 int
使用dir函数查看有多少内置方法
# python3.x
dir(int)
# ['__abs__', '__add__', '__and__', '__bool__', '__ceil__', '__class__', '__delattr__', '__dir__', '__divmod__', '__doc__',
'__eq__', '__float__', '__floor__', '__floordiv__', '__format__', '__ge__', '__getattribute__', '__getnewargs__', '__gt__',
'__hash__', '__index__', '__init__', '__int__', '__invert__', '__le__', '__lshift__', '__lt__', '__mod__', '__mul__', '__ne__',
'__neg__', '__new__', '__or__', '__pos__', '__pow__', '__radd__', '__rand__', '__rdivmod__', '__reduce__', '__reduce_ex__',
'__repr__', '__rfloordiv__', '__rlshift__', '__rmod__', '__rmul__', '__ror__', '__round__', '__rpow__', '__rrshift__', '__rshift__',
'__rsub__', '__rtruediv__', '__rxor__', '__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__',
'__xor__', 'bit_length', 'conjugate', 'denominator', 'from_bytes', 'imag', 'numerator', 'real', 'to_bytes'] # python 2.x
dir(int)
# ['__abs__', '__add__', '__and__', '__class__', '__cmp__', '__coerce__', '__delattr__', '__div__', '__divmod__', '__doc__',
'__float__', '__floordiv__', '__format__', '__getattribute__', '__getnewargs__', '__hash__', '__hex__', '__index__', '__init__',
'__int__', '__invert__', '__long__', '__lshift__', '__mod__', '__mul__', '__neg__', '__new__', '__nonzero__', '__oct__', '__or__',
'__pos__', '__pow__', '__radd__', '__rand__', '__rdiv__', '__rdivmod__', '__reduce__', '__reduce_ex__', '__repr__', '__rfloordiv__',
'__rlshift__', '__rmod__', '__rmul__', '__ror__', '__rpow__', '__rrshift__', '__rshift__', '__rsub__', '__rtruediv__', '__rxor__',
'__setattr__', '__sizeof__', '__str__', '__sub__', '__subclasshook__', '__truediv__', '__trunc__', '__xor__', 'bit_length', 'conjugate',
'denominator', 'imag', 'numerator', 'real']
因为是整型类型,所以有加减乘除、取绝对值的方法,像__abs__是取绝对值,__add__是加法等,其中重要的几个方法是:bit_length、conjugate、from_bytes、imag、numerator、real、to_bytes
digit = 123
print(digit.bit_length())
# 进入源码,Number of bits necessary to represent self in binary
# 首先把int型转为二进制,然后计算二进制的位数
bit_length
num = 2.3 - 2.5j
result = num.real #复数的实部
print(result) #打印输出2.3
result = num.imag #复数的虚部
print(result) #打印输出2.5j result = num.conjugate() #返回该复数的共轭复数
print(result) #打印输出(2.3+2.5j)
conjugate
print(int.from_bytes(bytes=b'A', byteorder='little') #打印输出 65 ,即将字符A转换为十进制
from_bytes
num = 2
result = num.to_bytes(5,byteorder='little')
print(result)
#打印输出b'\x02\x00\x00\x00\x00'
for i in result:
print(i) #打印输出2\n0\n0\n0\n0
#\n表示回车
to_bytes
imag、real分别是计算出复制的实部和虚部,conjugate得出共轭复数。
2 float
# 判断浮点数小数部分是否为零,返回布尔值
a = 3.0
print(a.is_integer())
# 输出结果为True a = 3.1
print(a.is_integer())
# 输出结果为False
is_integer
# 返回浮点数的十六进制表示
a = 15.0
print(a.hex())
# 输出结果为 0x1.e000000000000p+3
hex
3 str
#python3.5
dir(str)
#['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__',
'__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__',
'__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map',
'index', 'isalnum', 'isalpha', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper',
'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip',
'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] #python2.7
dir(str)
#['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__',
'__getnewargs__', '__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__',
'_formatter_field_name_split', '_formatter_parser', 'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip',
'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip',
'swapcase', 'title', 'translate', 'upper', 'zfill']
# 计算字符串中某个字符的总数
str1 = 'aaabc'
print(str1.count('a'))
# 输出结果为 3
count
# 将S的首字母大写并返回
a = 'aacde'
b = a.capitalize()
print(b)
# 输出结果为 Aacde
capitalize
# 判断字符串是否已某个字符结束,返回值为布尔值
str1 = 'aaabc'
print(str1.endswith('c'))
# 输出结果为 True
endswitch
# 找到字符串中某个字符第一次出现的索引
str1 = 'aaabc'
print(str1.find('a'))
# 输出结果为 0
find
# 返回某个字符第一次出现的索引
str1 = 'aaabc'
print(str1.index('a'))
# 输出结果为 0
index
# 判断字符串中字符是否都是数字,返回一个布尔值
str1 = 'aaabc'
print(str1.isdigit())
# 输出结果为 False str2 = ''
print(str2.isdigit())
# 输出结果为 True
isdigit
# 判断字符串中的字符是否全为小写
S = 'abc'
print(S.islower())
# 输出结果为True S = ''
print(S.islower())
# 输出结果为False
islower
# 判断S中字符是否全为大写
S = 'ABC'
print(S.isupper())
# 输出结果为True S = ''
print(S.isupper())
# 输出结果为False
isupper
# 将S中的字符用分隔符分隔
S = 'abcd'
print('.'.join(S))
# 输出结果为 a.b.c.d
join
# 将S中的字符全改为小写
S = 'AbCd123'
print(S.lower())
# 输出结果为 abcd123
lower
# 将S中左边的空格去掉
S = ' AbCd123'
print(S.lstrip())
# 输出结果为 AbCd123
lstrip
# 将S中的字符用字符替换
S = 'AbCd123'
print(S.replace('A', 'a'))
# 输出结果为 abCd123
replace
S = 'AbCd123'
print(S.split('d'))
# 输出结果为 ['AbC', '123']
split
# 判断S是否以某个字符开始,返回一个布尔值
S = 'AbCd123'
print(S.startswith('A'))
# 输出结果为 True S = 'AbCd123'
print(S.startswith('d'))
# 输出结果为 False
startswitch
# 将S左右两边的空格去掉
S = ' AbCd123 '
print(S.strip())
# 输出结果为 AbCd123
strip
# 将S中所有的字符大写
S = 'AbCd123 '
print(S.upper())
# 输出结果为 ABCD123
upper
4 list
# python 3.x
dir(list)
# ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__',
'__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__',
'__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove',
'reverse', 'sort'] # python 2.x
dir(list)
# ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__',
'__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__',
'__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
# 往列表追加元素
lis = ['a', 'b', 'c', 1, 2, 3]
lis.append(4)
print(lis)
# 输出结果 ['a', 'b', 'c', 1, 2, 3, 4]
append
# 清空列表
lis = ['a', 'b', 'c', 1, 2, 3]
lis.clear()
print(lis)
# 输出结果 []
clear
# 拷贝一个列表并返回该列表
lis = ['a', 'b', 'c', 1, 2, 3]
lis1 = lis.copy()
print(lis1)
# 输出结果 ['a', 'b', 'c', 1, 2, 3]
copy
# 计算列表中某个元素的数量
lis = ['a', 'b', 'c', 1, 2, 3]
lis1 = lis.copy()
print(lis1)
# 输出结果 ['a', 'b', 'c', 1, 2, 3]
count
# 合并列表
lis1 = ['a', 'b', 'c', 1, 2, 3]
lis2 = [4, 5, 6, 7, 8]
lis1.extend(lis2)
print(lis1)
# 输出结果 ['a', 'b', 'c', 1, 2, 3, 4, 5, 6, 7, 8]
extend
# 返回列表中元素的第一个出现位置的索引
lis1 = ['a', 'a', 'b', 'c', 1, 2, 3]
ind = lis1.index('a')
print(ind)
# 输出结果 0
index
# 插入到列表中某个索引位置
lis1 = ['a', 'a', 'b', 'c', 1, 2, 3]
lis1.insert(4, 'd')
print(lis1)
# 输出结果 ['a', 'a', 'b', 'c', 'd', 1, 2, 3]
insert
# 弹出列表中某个索引位置的值,默认弹出最后一个
lis1 = ['a', 'a', 'b', 'c', 1, 2, 3]
lis1.pop()
print(lis1)
# 输出结果 ['a', 'a', 'b', 'c', 'd', 1, 2, ] lis1 = ['a', 'a', 'b', 'c', 1, 2, 3]
lis1.pop(4)
print(lis1)
# 输出结果 ['a', 'a', 'b', 'c', 'd', 2, 3]
pop
# 删除列表中的元素
lis1 = ['a', 'a', 'b', 'c', 1, 2, 3]
a = lis1.remove('a')
print(lis1)
# 输出结果 ['a', 'b', 'c', 1, 2, 3]
# 和pop方法不同的地方有两个:pop通过索引取出值,有返回值;remove通过元素删除,没有返回值
remove
# 反转列表
lis1 = ['a', 'a', 'b', 'c', 1, 2, 3]
lis1.reverse()
print(lis1)
# 输出结果 [3, 2, 1, 'c', 'b', 'a', 'a']
reverse
# 排序
lis1 = ['a', 'a', 'b', 'c', 'r', 'c', 'g', 'l']
lis1.sort()
print(lis1)
# 输出结果 ['a', 'a', 'b', 'c', 'c', 'g', 'l', 'r']
sort
5 dict
#python3.x
dir(dict)
#['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys',
'pop', 'popitem', 'setdefault', 'update', 'values'] #python2.x
dir(dict)
#['__class__', '__cmp__', '__contains__', '__delattr__', '__delitem__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__getitem__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'has_key', 'items',
'iteritems', 'iterkeys', 'itervalues', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values', 'viewitems', 'viewkeys', 'viewvalues']
# 清空字典
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai'}
dic.clear()
print(dic)
# 输出结果 {}
clear
# 拷贝字典
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai'}
dic1 = dic.copy()
print(dic1)
# 输出结果 {'name': 'szz', 'age': '18', 'addr': 'shanghai'}
copy
# 返回一个新的字典
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai'}
dic1 = dic.fromkeys(('l'), ('hashangda'))
print(dic1)
print(dic)
# 输出结果 ['l': 'hashangda'}
# {'name': 'szz', 'age': '18', 'addr': 'shanghai'}
# 不改变前面的字典
fromkeys
# 通过key取值,如果取不到也不报错
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai'}
name1 = dic.get('name')
other = dic.get('school')
print(name1)
print(other)
# 输出结果 szz,None
get
# 获取字典的key和value
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai'}
for key, value in dic.items():
print(key, value)
# 输出结果 name szz age 18 addr shanghai
items
# 获取字典所有的键值
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai'}
keys = dic.keys()
print(keys)
# 输出结果 dict_keys(['name', 'age', 'addr'])
keys
# 弹出字典中的键值对
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai', 'school': 'hashangda'}
item = dic.pop('name')
print(item)
print(dic)
# 输出结果 szz {'age': '18', 'addr': 'shanghai', 'school': 'hashangda'}
pop
# 弹出字典中最后一个键值对
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai', 'school': 'hashangda'}
item = dic.popitem()
print(item)
print(dic)
# 输出结果 ('school', 'hashangda') {'name': 'szz', 'age': '18', 'addr': 'shanghai'}
# 弹出的键和值用列表存储
popitem
# 给字典设置默认值
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai', 'school': 'hashangda'}
dic.setdefault('male', 1)
print(dic)
# 输出结果 {'name': 'szz', 'age': '18', 'addr': 'shanghai', 'school': 'hashangda', 'male': 1}
setdeafault
# 更新字典中的键值对
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai', 'school': 'hashangda'}
dic1 = {'age': 23}
dic.update(dic1)
print(dic)
# 输出结果 {'name': 'szz', 'age': 23, 'addr': 'shanghai', 'school': 'hashangda'}
update
# 得到字典所有的值
dic = {'name': 'szz', 'age': '', 'addr': 'shanghai', 'school': 'hashangda'}
values = dic.values()
print(values)
# 输出结果 dict_values(['szz', '18', 'shanghai', 'hashangda'])
values
6 tuple
因为元祖为不可变数据类型,和列表相比方法只有两个
定义元祖需要注意的是,假如只有一个元素,则需要加一个逗号,不然数据类型就不是元祖了
# 找到某个元素的索引位置
t = (1,2,3,4,5,'a','b','c')
print(t.index('a')
# 输出结果为5, 如果元素找不到的话就会报错
# 返回元祖中某个元素的数量
t = (1,1,2,3,6,8,'a','b','c')
print(t.count(1))
# 输出结果为 2
count
7 set
有序or无序
判断有序和无序就看是否可以通过索引取值,可以通过索引取值的数据类型都是有序的
可变or不可变
可变:值变化的同时,id没变。证明是在原值的基础上改变。
不可变:值变化的同时,id也改变。证明是生成一个新值,并没有改变原值。
字符串常用操作
# 1、按索引取值(正向取+反向取) :只能取
msg = 'hello world'
print(msg[0])
print(msg[5])
print(msg[len(msg)-1])
print(msg[-1])
msg[0] = 'H' # 2、切片(顾头不顾尾,步长): 想要从一个大字符串中切出一个小字符串
msg='hello world'
print(msg[0:5])
print(msg)
print(msg[0:5:2]) #0 2 4 # 了解
msg = 'hello world'
print(msg[-1:-5:1])
print(msg[-1:-5:-1]) #d l r o
print(msg[0:5:1]) print(msg[-1::-1]) #掌握
列表常用操作
#1、按索引存取值(正向存取+反向存取):即可存也可以取
# li=['a','b','c','d']
# print(li[-1])
# li[-1]='D'
# print(li) # # li[4]='e'
# del li[0]
# print(li)
#2、切片(顾头不顾尾,步长)
# li=['a','b','c','d']
# print(li[0:3])
python数据类型之内置方法的更多相关文章
- python进阶之内置方法
python进阶之内置方法 字符串类型的内置方法 常用操作与方法: 按索引取值 str[index] 切片 ste[start:stop:step] 长度 len(str) 成员运算in和not in ...
- python数据类型内置方法
内容概要 列表内置方法 字典内置方法 字符串转换成字典的方法 eval() 元组内置方法 元组相关笔试题 集合内置方法 列表内置方法 l1 = [2, 4, 5, 7, 3, 9, 0, 6] # 升 ...
- python数据类型内置方法 字符串和列表
1.字符串 内置方法操作# a = 'qqssf'#1. print(a[-1:]) #按索引取,正向从0开始,反向从-1开始# print(len(a)) #取长度# a = 'qqssf'# 2. ...
- Python基础之内置方法
目录 字符串的内置方法 按索引取值 切片(顾头不顾尾,步长) 长度len 成员运算 移除两边空白strip 切分split 循环 lower&upper startswith & en ...
- Python面向对象之内置方法
1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 issubclass(sub, s ...
- python常用数据类型内置方法介绍
熟练掌握python常用数据类型内置方法是每个初学者必须具备的内功. 下面介绍了python常用的集中数据类型及其方法,点开源代码,其中对主要方法都进行了中文注释. 一.整型 a = 100 a.xx ...
- python循环与基本数据类型内置方法
今天又是充满希望的一天呢 一.python循环 1.wuile与else连用 当while没有被关键'break'主动结束的情况下 正常结束循环体代码之后会执行else的子代码 "" ...
- python中其他数据类型内置方法
补充字符串数据类型内置方法 1.移除字符串首尾的指定字符可以选择方向1: s1 = '$$$jason$$$' print(s1.strip('$')) # jason print(s1.lstrip ...
- python设计模式之内置装饰器使用(四)
前言 python内部有许多内建装饰器,它们都有特别的功能,下面对其归纳一下. 系列文章 python设计模式之单例模式(一) python设计模式之常用创建模式总结(二) python设计模式之装饰 ...
随机推荐
- httpd安装与配置(编译安装)
httpd简介 httpd是Apache超文本传输协议(HTTP)服务器的主程序.被设计为一个独立运行的后台进程,它会建立一个处理请求的子进程或线程的池. 通常,httpd不应该被直接调用,而应该在类 ...
- 将JSON数据转换成JAVA的实体类
思路:首先将JSON格式的数据转换成JSONObject,然后将JSONObject转换成Java的实体类(其中类属性包括List等类型) Java实体类: SearchFilter 类 1 publ ...
- mybatis中使用常量
mybatis的mapper文件中项要使用常量的话${@类的全称路劲@常量名称}
- Django 通过 mongoengine 连接 MongoDB 进而使用orm进行CRUD
一. 在python脚本中, 我们通常可以使用pymongo模块实现与mongodb数据库的交互, 但是在使用Django框架进行定制开发的web server 项目中, 仍然使用pymongo模块的 ...
- cad2013卸载/安装失败/如何彻底卸载清除干净cad2013注册表和文件的方法
cad2013提示安装未完成,某些产品无法安装该怎样解决呢?一些朋友在win7或者win10系统下安装cad2013失败提示cad2013安装未完成,某些产品无法安装,也有时候想重新安装cad2013 ...
- Struts2再爆远程命令执行漏洞![W3bSafe]Struts2-048 Poc Shell及防御修复方案抢先看!
漏洞概述 Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目,是一套用于创建企业级Java Web应用的开源MVC框架.在Struts 2.3.x 系列的 Show ...
- XStream进行xml和bean互转
加入pom <dependency> <groupId>com.thoughtworks.xstream</groupId> <artifactId>x ...
- Spring MVC 后端获取前端提交的json格式字符串并直接转换成control方法对应的参数对象
场景: 在web应用开发中,spring mvc凭借出现的性能和良好的可扩展性,导致使用日渐增多,成为事实标准,在日常的开发过程中,有一个很常见的场景:即前端通过ajax提交方式,提交参数为一个jso ...
- Liferay7 BPM门户开发之22: Liferay7模型监听器(Model Listeners)
Model Listeners实现ModelListener接口,用于持久化时的AOP处理 一些使用场景: Audit Listener: 在一个独立而分离的数据库,做信息更新的审计: Cache C ...
- [源码]Delphi源码免杀之函数动态调用 实现免杀的下载者
[免杀]Delphi源码免杀之函数动态调用 实现免杀的下载者 2013-12-30 23:44:21 来源:K8拉登哥哥's Blog 自己编译这份代码看看 过N多杀软 没什么技 ...