码迷,mamicode.com
首页 > 编程语言 > 详细

Python数据类型

时间:2019-01-01 11:44:39      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:描述   第一个字符   bool   赋值   sub   name   val   inter   放大   

Python3基本数据类型

一. 基本数据类型

  • Numbers 数字:int(整形),float(浮点型),bool(布尔),complex(复数型)  # 主要用于数据计算
  • String 字符串:  # 存储少量的数据
  • List 列表: # 序列是有序的,可存储大量数据,可存储任意数据类型,如数字,字符串,布尔值,列表,元组,字典,集合以及对象
  • Tuple 元组: # 有序的类型,可存储大量数据,不能增、删、改、查,用于存放重要不能被改动的数据
  • Set 集合:# 无序的类型,主要用于关系测试,如交集、并集、差集,反交集
  • Dictionary 字典:# 无序的类型,以键值对存储,键值对不能重复,可存放大量关系型数据
  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个)   List(列表)、Dictionary(字典)、Set(集合)。

 

String(字符串)及其常用操作方法

Python中的字符串用单引号 ‘ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。字符串的操作方法都不会改变原来字符串的值

1. 字符串的切片

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则是左闭右开)

正向切片:字符串[起始索引:结尾索引+1:步长(可选)]

正向切片:字符串[起始索引:结尾索引+1:-步长(可选)]

索引值以 0 为开始值,-1 为从末尾的开始位置。

str = ‘Helloworld‘

print(str) # 输出字符串

print(str[0:]) # 输出第一个到最后一个字符,默认到最后一个

print(str[0:-1]) # 输出第一个到倒数第二个的所有字符

print(str[0]) # 输出字符串第一个字符

print(str[2:5]) # 输出从第三个开始到第五个的字符

print(str[2:5:2]) # 输出从第三个和第五个字符,步长为2

print(str[:2:-2]) # 反向加步长,输出从最后一个字符到第3个字符,步长为-2

print(str[2:]) # 输出从第三个开始的后的所有字符

print(str * 2) # 输出字符串两次

print(str + "TEST") # 连接字符串

执行以上程序输出如下:

Helloworld

Helloworld

Helloworl

H

llo

lo

drwl

lloworld

HelloworldHelloworld

HelloworldTEST

1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。

2、字符串可以用+运算符连接在一起,用*运算符重复。

3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。4、Python中的字符串不能改变。

2. 字符串的拼接

1. 用 + 拼接

>>> ‘Hello‘+‘world‘‘Helloworld‘

 2. 将字符串放在一起,会自动拼接为一个字符串

>>> ‘Hello‘ ‘world‘‘Helloworld‘

3. ‘*’.join(list)  用*连接list 变成一个字符串,list 可以是字符,列表,字典(可迭代的对象), int 类型不能被连接

>>> list = [‘1‘,‘test‘,‘hello‘]

>>> ‘*‘.join(list)

‘1*test*hello‘

 

3. 字符串的分割

name.split()  默认按照空格分割

name.rsplit()  默认按照空格分割,从右往左分割

name.split(‘,‘,2)   按照逗号分割,分割次数为2(可选)

4. 去掉空格和特殊符号

name.strip()  去掉空格和换行符

name.strip(‘xx‘)  去掉指定的某个字符串

name.lstrip()  去掉左边的空格和换行符

name.rstrip()  去掉右边的空格和换行符

5. 字符串的搜索和替换

name.count(‘x‘)  查找某个字符在字符串里面出现的次数

name.capitalize()  首字母大写

name.capitalize()  首字母大写

name.swapcase()  大小写翻转

name.center(n,‘-‘)   把字符串放中间,两边用- 补齐

name.find(‘x’)   找到这个字符返回下标,有多个时返回第一个;不存在的字符返回-1

name.index(‘x‘) 找到这个字符返回下标,有多个时返回第一个;不存在的字符报错

name.replace(oldstr, newstr)  字符串替换

name.format() 字符串格式化

6. 字符串的常用方法

S.startswith(‘xx’, start, end) # 判断是否以xx开头,返回布尔值 

S.endswith(‘xx‘, start, end) # 判断是否以xx结尾,返回布尔值

S.isalnum() #是否全是字母和数字,并至少有一个字符 

S.isalpha() #是否全是字母,并至少有一个字符 

S.isdigit() #是否全是数字,并至少有一个字符 

S.isspace() #是否全是空白字符,并至少有一个字符 

S.islower() #S中的字母是否全是小写 S.isupper() #S中的字母是否全是大写 

S.istitle() #S是否是首字母大写的

S.find(“xx",1,6) # 在指定范围内寻找目标元素是否存在,存在返回目标元素的索引,不存在返回-1

S.index(“xx",1,6) # 在指定范围内寻找目标元素是否存在,存在返回目标元素的索引,不存在报错

split() #从左向右寻找,以某个元素为中心将左右分割成两个元素并放入列表中,最大分割次数为可选参数,不写或-1表示没有限制

rsplit() #从右向左寻找,以某个元素为中心将左右分割成两个元素并放入列表中,最大分割次数为可选参数,不写或-1表示没有限制

splitlines() #根据换行符(\n)分割并将元素放入列表中

多个变量赋值及交换

>>> a,b,c=1,2,3>>> print(a,b,c)1 2 3>>> a,b,c=c,a,b>>> print(a,b,c)3 1 2

 

字符串运算符

下表实例变量a值为字符串 "Hello",b变量值为 "Python":

操作符

描述

实例

+

字符串连接

a + b 输出结果: HelloPython

*

重复输出字符串

a*2 输出结果:HelloHello

[]

通过索引获取字符串中字符

a[1] 输出结果 e

[ : ]

截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。

a[1:4] 输出结果 ell

in

成员运算符 - 如果字符串中包含给定的字符返回 True

‘H‘ in a 输出结果 True

not in

成员运算符 - 如果字符串中不包含给定的字符返回 True

‘M‘ not in a 输出结果 True

r/R

原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

print( r‘\n‘ )

print( R‘\n‘ )

%

格式字符串

 

List(列表)及其常用操作方法

列表是python中的基础数据类型之一,以 [] 括起来,每个元素以逗号隔开,里面可以存放各种数据类型,如数字,字符串,元组,列表,字典。

列表相比于字符串,不仅可以储存不同的数据类型,而且可以储存大量数据,32位python的限制是 536870912 个元素,64位python的限制是 1152921504606846975 个元素。而且列表是有序的,有索引值,可切片,方便取值。

  1. 

list.insert(0,123)  # 按照列表的索引增加

list.append(‘abc’)  # 在列表最后增加

list.extend(‘hello’)  # 迭代的增加

  2. 

list.pop(2)  # 按照列表的索引删除,会返回删除的元素,没有找到该元素时会报错

del li[2:3]  # 可按照列表的索引删除或对列表切片删除,没有返回值

li.remove(‘hello’)  # 按照元素的内容删除

li.clear()  # 清空列表

  3. 

li[1] = ‘123’  # 按照列表的索引对元素赋值

li[1:3] = [‘a‘,‘b‘]  # 切片后赋值

  4. 

切片、循环

Dict(字典)及其常用操作方法

      字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:Number(数字)、String(字符串)、Tuple(元组)。

  字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取,效率会高很多。

  1. 增

>>> dic = {‘name‘: ‘Tom‘}

# 直接增加: 无此键则增加,有此键则修改

>>> dic[‘name‘] = ‘Tom‘

# setdefault:无此键则增加,有此键则不变,并返回字典内的键值

>>> dic.setdefault(‘name‘,‘James‘)

‘Tom‘

  2. 删

>>> dic = {‘name‘: ‘Tom‘}

pop  # 按照键删除键值对且有返回值,第二个参数可设置返回值,如果字典中无此键,设置第二个参数可以避免报错

>>> dic.pop(‘age‘, ‘无此键‘)

‘无此键‘

clear  # 清空字典

>>> dic.clear()

del # 无返回值

>>> del dic[‘name‘]

  3. 改

>>> dic = {‘name‘: ‘Tom‘}

# 按照键改

>>> dic[‘name‘] = ‘James‘

# 更新, 将dic2中所有键值对覆盖添加

>>> dic.update(dic2)

>>> dic.update(age=20)

  4. 查

>>> dic = {‘name‘: ‘Tom‘}

# 按照键查,无此键会报错

>>> dic[‘name‘]

>>> dic.get(‘name‘)

‘Tom‘

>>> dic.get(‘age‘) # 无此键默认返回None

>>> dic.get(‘age‘, ‘无此键‘) # 无此键时设置指定的返回值

 

 

Set(集合)及其常用操作方法

  集合是无序的,不重复的数据集合,它里面的元素是可哈希的(不可变类型),但是集合本身是不可哈希(所以集合做不了字典的键)的。以下是集合的几个特点:

  1.  集合内的元素必须是不可变的数据类型

  2. 集合是无序的并且去重,元素可hash

  3. 关系测试,测试两组数据之前的交集、差集、并集等关系。

  1. 增

>>> set = {1,2,3}
>>> set.add(4)
>>> print(set)
{1,2,3,4}
>>> set.update([‘A‘,‘B‘])
{1,2,3,4,‘A‘,‘B‘}

  2. 删

>>> set = {1,2,3}
>>> set.remove(1) # 按照元素删除
>>> set.pop() # 随机删除
2
>>> set.clear() #清空集合


 

 

 

  集合的关系运算

  交集(&  或者 intersection)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 & set2)  # {4, 5}
print(set1.intersection(set2))  # {4, 5}

  并集。(| 或者 union)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 | set2)  # {1, 2, 3, 4, 5, 6, 7,8}
print(set2.union(set1))  # {1, 2, 3, 4, 5, 6, 7,8}

  差集。(- 或者 difference)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 - set2)  # {1, 2, 3}
print(set1.difference(set2))  # {1, 2, 3}

   反交集。 (^ 或者 symmetric_difference)

set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8}
print(set1 ^ set2)  # {1, 2, 3, 6, 7, 8}
print(set1.symmetric_difference(set2))  # {1, 2, 3, 6, 7, 8}

  子集与超集

set1 = {1,2,3}
set2 = {1,2,3,4,5,6}

print(set1 < set2)
print(set1.issubset(set2))  # 这两个相同,都是说明set1是set2子集。

print(set2 > set1)
print(set2.issuperset(set1))  # 这两个相同,都是说明set2是set1超集。

 

 

 

 

Python数据类型

标签:描述   第一个字符   bool   赋值   sub   name   val   inter   放大   

原文地址:https://www.cnblogs.com/xiongying2018/p/10159636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!