Python 数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python 数据类型相关的知识,希望对你有一定的参考价值。
一、数据类型简介
(1) Python 数据类型包括数值类型、字符串类型、元组、列表、字典
(2) 数值类型可以分为整型、长整型、浮点型、复数型
(3) 字符串、元组、列表都属于序列的一种,三种类型都可以使用序列的一些特性(比如索引与切片,以及下面列举的一些基本操作)
len() # 求序列的长度
+ # 连接两个序列
* # 重复序列元素
in # 判断元素是否在序列中
not in # 判断元素是否不在序列中
max() # 返回最大值
min() # 返回最小值
cmp(x,y) # 比较两个序列是否相等
二、数值类型
1. 整型
In [1]: a = 123 # 定义整数类型
In [2]: type(a) # 查看数据类型
Out[2]: int
-2147483648 —— 2147483647 # 整型的取值范围,如果超过了这个范围则成为长整型
2. 长整型
In [7]: a = 123456789123456789123456789 # 定义长整型
In [8]: type(a) # 查看数据类型
Out[8]: long
In [9]: a # 长整型后面会带有字母(l或L)以标识这是长整型
Out[9]: 123456789123456789123456789L
3. 浮点型
In [10]: a = 1.0 # 带小数点的数据类型则为浮点型
In [11]: b = 3e+7 # 科学计数法也属于浮点型
In [11]: type(a) # 查看数据类型 Out[11]: float
4. 复数型
In [14]: a = 123j # 字母 j 用于标识这是一个复数类型
In [15]: type(a) # 查看数据类型
Out[15]: complex
三、字符串类型
1. 定义字符串
In [16]: str = ‘this is a string‘ # 可以使用单引号/双引号/三引号来定义字符串类型
In [17]: str = "this is a string" # 在 python 中,单引号和双引号并没有什么区别
In [18]: str = ‘‘‘this is a string‘‘‘ # 三引号可以写成‘‘‘或""" ,三引号除了能定义字符串类型外还能用来做注释
In [21]: str = "Hello\nWorld" # 单引号和双引号如果要跨行定义需要加上 \n 作为换行符
In [24]: str = """Hello # 三引号可以直接回车在下一行输入
....: World"""
2. 字符串的索引与切片
In [26]: a = ‘abcde‘
In [27]: a[0] # 索引值从0开始,表示取字符串中的第一个字符
Out[27]: ‘a‘
In [28]: a[1] # 取字符串中的第二个字符
Out[28]: ‘b‘
In [29]: a[-1] # -1 表示倒数一个字符,-2 表示倒数第二个字符,以此类推
Out[29]: ‘e‘
In [30]: a[0:2] # 表示取第一个到第三个(不包括第三个)这个范围的字符
Out[30]: ‘ab‘
In [31]: a[:2] # 零可以省略,如果省略表示从第一个索引开始取
Out[31]: ‘ab‘
In [32]: a[1:] # 这样写表示从第二个取到最后一个索引
Out[32]: ‘bcde‘
In [33]: a[-4:-2] # 表示取倒数第四个到倒数第二个(不包括倒数第二个)这个范围的字符
Out[33]: ‘bc‘
In [34]: a[::1] # 表示每隔一个数取一次(如果是负数则从右向左取)
Out[34]: ‘abcde‘
In [35]: a[::2] # 表示每隔两个数取一次
Out[35]: ‘ace‘
3. 字符串的方法
In [1]: a = ‘abc‘
In [2]: a.lower() # lower()用于将字符串转换成小写字母
Out[2]: ‘abc‘
In [3]: a.upper() # upper()用于将字符串转换成大写字母
Out[3]: ‘ABC‘
In [4]: a.startswith(‘ab‘) # startswith()用于判断是否以指定的字符开头,如果是则返回 True ,否则返回 False
Out[4]: True
In [6]: a.isdigit() # isdigit()用于判断是否是纯数字的字符串
Out[6]: False
In [7]: a.capitalize() # capitalize()用于使字符串首字母变成大写
Out[7]: ‘Abc‘
In [8]: a.replace(‘a‘, ‘A‘) # replace()用于替换字符串,默认只替换一次,如果要替换多次可以在后面指定次数,如 a.replace(‘a‘, ‘A‘, 3)
Out[8]: ‘Abc‘
In [9]: a.split(‘b‘) # split()用于切分字符串,括号里可以指定分割符,如果不指定默认以空格/Tab键/换行符来切分
Out[9]: [‘a‘, ‘c‘]
In [9]: a.find(‘b‘) # find()用于返回指定字符的索引值,如果没有找到该字符则返回-1
Out[9]: 1
In [9]: ‘-‘.join(a) # join()用于将序列中的元素以指定的字符连接生成一个新的字符串,详细用法参考菜鸟教程
Out[9]: a-b-c
In [69]: a = ‘ abc ‘
In [70]: a.strip() # strip()用于把左右两边的空格去掉
Out[70]: ‘abc‘
In [71]: a.lstrip() # lstrip()用于把最左边(left)的空格去掉
Out[71]: ‘abc ‘
In [72]: a.rstrip() # rstrip()用于把最右边(right)的空格去掉
Out[72]: ‘ abc‘
In [73]: name = ‘xiaoming‘ # format()用法与print的格式化输出字符串用法一致
In [74]: age = 21
In [75]: print(‘my name is {0}, my age is {1}‘).format(name, age)
my name is xiaoming, my age is 21
4. string 模块
In [1]: import string
In [2]: string.lowercase # string.lowercase 用于打印所有小写字母
Out[2]: ‘abcdefghijklmnopqrstuvwxyz‘
In [3]: string.uppercase # string.uppercase 用于打印所有大写字母
Out[3]: ‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘
In [4]: string.capitalize(‘hello‘) # string.capitalize()用于指定字符串的首字母大写
Out[4]: ‘Hello‘
In [5]: string.replace(‘hello‘, ‘h‘, ‘H‘) # string.replace()用于替换字符串
Out[5]: ‘Hello‘
四、列表
1. 列表的基本操作
In [65]: a = [‘abc‘, 123, 456] # 创建列表
In [66]: a[0] = ‘def‘ # 修改列表元素
In [67]: type(a) # 查看数据类型
In [68]: del a # 删除列表
In [69]: del a[0] # 删除列表的某个元素
2. 列表的方法
In [74]: a = [‘a‘, ‘b‘, ‘c‘]
In [75]: a.append(‘d‘) # append()用于追加指定的列表元素
In [76]: a.remove(‘d‘) # remove()用于删除指定的列表元素,如果有多个相同的列表元素,则默认只删除一个
In [77]: a.insert(2,‘c‘) # insert()用于在指定的索引前面插入元素,这里表示在索引为 2(即‘c‘)的前面插入字符‘c‘ ,结果为 [‘a‘, ‘b‘, ‘c‘, ‘c‘]
In [77]: a.index(‘b‘) # index()用于返回指定元素的索引值
In [78]: a.sort() # sort()用于给列表排序(正向排序)
In [79]: a.reverse() # reverse()用于反转列表元素,比如 a = [‘a‘, ‘b‘, ‘c‘] ,则 a.reverse() 结果为 [‘c‘, ‘b‘, ‘a‘]
In [80]: a.pop(2) # pop()用于返回并删除指定索引位置的元素,如果不指定索引值则默认返回并删除最后一个
In [81]: a.extend(range(5)) # extend()用于将可迭代的对象追加到列表中,括号内的 range(5) 是可迭代的对象,一般用来把一个列表的内容追加到另一个列表中五、元组
五、元组
1. 元组简介
(1) 元组用括号来定义,可以存储一系列的值
(2) 元组与字符串一样是不可变的,也就是说,当你定义完一个元组之后,你不能改变某个元素的值,除非你把整个元组重新定义
(3) 元组通常用在用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变
In [50]: t = (‘abc‘, 123, 456) # 定义元组
In [50]: t = (‘abc‘,) # 当元组中只有一个元素的时候后面要加逗号,否则 python 会认为这是一个字符串类型而不是元组类型
In [51]: type(t) # 查看数据类型
Out[51]: tuple
2. 元组的方法
In [56]: t = (‘a‘, ‘b‘, ‘c‘, ‘a‘, ‘a‘)
In [57]: t.count(‘a‘) # count()用于统计元素的个数
Out[57]: 3
In [59]: t.index(‘b‘) # index()用于返回元素对应的索引值
Out[59]: 1
六、字典
1. 字典简介
(1) 字典是 python 中唯一的映射类型(key-value)
(2) 字典的 value 是可变的,但是字典的 key 不可变,且 key 唯一,不能有重复的 key 值
In [1]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘} # 定义字典
In [2]: type(a) # 查看数据类型
Out[2]: dict
In [3]: a[2] # 根据 key 访问字典元素
Out[3]: ‘b‘
2. 字典的方法
In [4]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘}
In [5]: a.keys() # keys()用于返回字典中所有的 key
Out[5]: [1, 2, 3]
In [6]: a.values() # values()用于返回字典中所有的 value
Out[6]: [‘a‘, ‘b‘, ‘c‘]
In [7]: a.get(2) # get()用于返回指定 key 的 value 值,这里表示返回 key 为 2 的 value 值
Out[7]: ‘b‘
In [8]: a.has_key(1) # has_key()用于判断字典中是否有指定的 key 值
Out[8]: True
In [9]: a.items() # items()用于以元组的形式返回字典中的 key-value 对,且外层是一个列表,该方法可以用循环来遍历字典
Out[9]: [(1, ‘a‘), (2, ‘b‘), (3, ‘c‘)]
In [10]: a.iteritems() # iteritems()用于与 items() 一致,但返回的是一个迭代器,不占用内存,只有在需要的时候才调用,就像 print 和 return 的关系一样
Out[10]: <dictionary-itemiterator at 0x297ac58>
In [11]: a.copy() # copy()相当于复制字典,一般将它赋值给某个变量,比如 b = a.copy()
Out[11]: {1: ‘a‘, 2: ‘b‘, 3: ‘c‘}
In [12]: a.pop(2) # pop()用于返回并删除指定 key 所对应的元素
Out[12]: ‘b‘
In [13]: a.update(b) # update()用于合并两个字典,比如 a = {1:‘a‘} ,b = {2:‘b‘} ,则 a.update(b) 结果为 {1:‘a‘, 2:‘b‘}
In [14]: a.clear() # clear()用于清除字典中的所有元素
In [37]: a = {1:‘a‘, 2:‘b‘, 3:‘c‘}
In [38]: a.setdefault(2) # setdefault()作用与 get() 一致,用于返回指定 key 的 value 值,当然前提是 key 存在的情况下
Out[38]: ‘b‘
In [46]: a.setdefault(4, ‘d‘) # 当指定的 key 不存在时,返回我们设置的默认值并把 key-value 追加到字典中
Out[46]: ‘d‘
In [47]: a
Out[47]: {1: ‘a‘, 2: ‘b‘, 3: ‘c‘, 4: ‘d‘}