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

encode

# 判断字符串是否已某个字符结束,返回值为布尔值
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 = '123'
print(str2.isdigit())
# 输出结果为 True

isdigit

# 判断字符串中的字符是否全为小写
S = 'abc'
print(S.islower())
# 输出结果为True

S = '123'
print(S.islower())
# 输出结果为False

islower

# 判断S中字符是否全为大写
S = 'ABC'
print(S.isupper())
# 输出结果为True

S = '123'
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': '18', 'addr': 'shanghai'}
dic.clear()
print(dic)
# 输出结果 {}

clear

# 拷贝字典
dic = {'name': 'szz', 'age': '18', 'addr': 'shanghai'}
dic1 = dic.copy()
print(dic1)
# 输出结果 {'name': 'szz', 'age': '18', 'addr': 'shanghai'}

copy

# 返回一个新的字典
dic = {'name': 'szz', 'age': '18', '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': '18', 'addr': 'shanghai'}
name1 = dic.get('name')
other = dic.get('school')
print(name1)
print(other)
# 输出结果 szz,None

get

# 获取字典的key和value
dic = {'name': 'szz', 'age': '18', 'addr': 'shanghai'}
for key, value in dic.items():print(key, value)
# 输出结果 name szz age 18 addr shanghai

items

# 获取字典所有的键值
dic = {'name': 'szz', 'age': '18', 'addr': 'shanghai'}
keys = dic.keys()
print(keys)
# 输出结果 dict_keys(['name', 'age', 'addr'])

keys

# 弹出字典中的键值对
dic = {'name': 'szz', 'age': '18', 'addr': 'shanghai', 'school': 'hashangda'}
item = dic.pop('name')
print(item)
print(dic)
# 输出结果 szz {'age': '18', 'addr': 'shanghai', 'school': 'hashangda'}

pop

# 弹出字典中最后一个键值对
dic = {'name': 'szz', 'age': '18', 'addr': 'shanghai', 'school': 'hashangda'}
item = dic.popitem()
print(item)
print(dic)
# 输出结果 ('school', 'hashangda') {'name': 'szz', 'age': '18', 'addr': 'shanghai'}
# 弹出的键和值用列表存储

popitem

# 给字典设置默认值
dic = {'name': 'szz', 'age': '18', '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': '18', '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': '18', '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, 如果元素找不到的话就会报错

View Code

# 返回元祖中某个元素的数量
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])

转载于:https://www.cnblogs.com/zuanzuan/p/9651821.html

python数据类型之内置方法相关推荐

  1. python中递归函数的基例_详谈Python基础之内置函数和递归 Python递归和循环的区别...

    Python 递归函数基例 2. 关于递归函数基例的说明,以下选项中错误的是 A 递归函数的基例决定所谓基例就是不需要递归就能求解的,一般来说是问题的最小规模下的解. 例如:斐波那契数列递归,f(n) ...

  2. 7.python字符串-内置方法分析

    上篇对python中的字符串内置方法进行了列举和简单说明,但这些方法太多,逐一背下效率实在太低,下面我来对这些方法按照其功能进行总结: 1.字母大小写相关(中文无效) 1.1 S.upper() -& ...

  3. 二. python面向对象(内置方法and析构函数)

    一. 内置方法和析构函数 __str__() 在调用print 打印对象时自动调用 是给用户用的 是一个描述对象的方法__repr__() 是给机器用的在python 解释器里面直接敲对象在回车后调用 ...

  4. 八、基本数据类型内置方法

    一.数据类型 1.1定义 # 1.定义: # 1.1 整型int的定义 age=10 # 本质age = int(10)# 1.2 浮点型float的定义 salary=3000.3 # 本质sala ...

  5. Python的内置方法(二)

    2019独角兽企业重金招聘Python工程师标准>>> open(name[,mode[,buffering]]):打开文件,返回一个file类型的对象.如果文件不能打开,抛出IOE ...

  6. 面向对象之内置方法(简单)、组合。以及接口归一化设计与抽象类

    一.内置方法 一 isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo( ...

  7. python字符串内置方法

    网上已经有很多,自己操作一遍,加深印象. dir dir会返回一个内置方法与属性列表,用字符串'a,b,cdefg'测试一下 dir('a,b,cdefg') 得到一个列表 ['__add__','_ ...

  8. python getattr_Python 内置方法和属性应用:反射和单例

    1. 前言 python除了丰富的第三方库外,本身也提供了一些内在的方法和底层的一些属性,大家比较常用的如dict.list.set.min.max.range.sorted等.笔者最近在做项目框架时 ...

  9. python-字符串数据类型内置方法

    字符串类型内置方法 (str) 用途:描述性质的东西,如人的名字.单个爱好.地址.国家等 定义:使用单引号(' ').双引号(" ").三单引号(''' ''').三双引号(&qu ...

最新文章

  1. js循环动态绑定带参数函数遇到的问题及解决方案[转]
  2. 在CentOS 6.3中安装与配置JDK-7
  3. instance在ceph对应pool的位置查询
  4. 清北学堂模拟赛d6t2 刀塔
  5. ERP项目实施记录06
  6. 微服务深入浅出(4)-- 负载均衡Ribbon
  7. 【转】char码值对应列表大全
  8. iOS网络请求架构图URL Loading System
  9. php随机生成微信昵称(一),可配合头像一起生成虚拟头像
  10. 计算机网络基础期末试题,计算机网络基础期末考试试题
  11. Ubuntu安装adobe字体
  12. 单机html游戏修改数据,星露谷物语存档修改图文教程 怎么修改游戏数据
  13. 主流地信遥感数据导航
  14. vs2010专业板产品密钥
  15. word 三线表 中间辅助线即行线如何断开?
  16. xampp php网站,xampp部署php网站
  17. Java类与对象案例之打字游戏
  18. CSS实现a标签去掉下划线以及点击不再有颜色变化
  19. 什么是Use Case?
  20. Mapbox Android学习笔记(8)离线地图

热门文章

  1. Android性能优化系列 + Android官方培训课程中文版
  2. 专访WebRTC标准之父Daniel C. Burnett
  3. POJ 3982 序列 塔尔苏斯问题解决
  4. Jquery.LazyLoad.js修正版下载,实现图片延迟加载插件
  5. GAE上使用Struts2
  6. 华为云提供针对Nuget包管理器的缓存加速服务
  7. sun.misc.BASE64Encoder在Eclipse中不能直接使用的原因和解决方案
  8. python学习日记-2
  9. hdu 2085 核反应堆
  10. 数据加密之MD5加密