Python有六种标准的数据类型:Number、Tuple、String、List、Dictionary、Set
- 不可变数据(3个):Number、String、Tuple
- 可变数据(3个):Set、List、Dictionary
Number(数字)
Python3支持int、float、bool、complex(复数)
复数的实部a和虚部b都是浮点型
数值的除法包含两个运算符:/返回一个浮点数,//返回一个整数
在混合计算时,Python会把整数转换为浮点数
List(列表)
基本概念
- 列表是有序的元素集合,所有元素放在一对中括号[ ]中,用逗号隔开,没有长度限制
- 列表索引值以0为开始值,-1为从末尾的开始位置
- 列表可以使用+操作符进行拼接,使用*进行重复
- 当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙
列表元素可以通过索引访问单个元素
列表
列表可以完成大多数集合类的数据结构实现
列表中元素可以为不同数据类型,他支持数字,字符串甚至可以包含列表(所谓嵌套)
列表为可变类型数据
列表基本操作
列表操作符 | 操作符含义 |
---|---|
< list >*< 整数类型 > | 对列表进行整数次重复 |
len(< seq >) | 列表中元素个数 |
< list >[< 整数类型 >] | 索引列表中的元素 |
for< var >in < list >: | 对列表进行循环列举 |
< list >[< 整数类型>:< 整数类型>] | 取列表的一个子序列 |
< expr>in< list > | 成员检查,判断< expr >是否在列表中 |
< list1 >+< list2 > | 连接两个列表 |
列表相关方法
方法 | 方法含义 |
---|---|
< list >.count(x) | 返回元素x在列表中的数量 |
in | 判断指定数据在某个列表序列,如果在返回True,否则返回false |
not in | 判断指定数据不在某个列表序列,如果不在返回True,否则返回False |
增加:
-
append():列表结尾追加数据(列表序列.append(数据))
-
extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
-
insert():指定位置新增数据(列表序列.insert(位置下标,数据))
删除:
-
del(del 目标)
-
pop():删除指定下标的数据(默认为最后一个),并返回该数据(列表序列.pop(下标))
-
remove():移除列表中某个数据的第一个匹配项(列表序列.remove(数据))
-
clear():清空列表
修改:
- 修改指定下标数据
- 逆置:reverse()
- 排序:sort()(列表序列.sort(key=None,reverse=False)).reverse表示排序规则,reverse=True降序,reverse=False升序(默认)
遍历:
- while循环
- for循环
列表嵌套
列表推导式
list_x=[1,2,3,4,5,6,7]
list_y=[i**2 for i in list_x]
# for i in list_x:
# list_y.append(i**2)
print(list_y)
创建列表:
>>>list((3,5,7,9,11)) #将元组转换为列表
[3,5,7,9,11]
>>>list(range(1,10,2)) #将range对象转换为列表range(开始,结束,步长)
[1,3,5,7,9] 从1到10(不包括10)每次加2
>>>list('hello world') #将字符串转换为列表,每个字符转换为列中的一个元素
['h', 'e' ,'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd' ]
>>>list({3,7,5}) #将集合转换为列表,集合中的元素是无序的
[3,5,7]
>>>x=list() #创建空列表
>>>x=[1,2,3]
>>>del x #删除列表对象
>>>x #对象删除后无法再访问,抛出异常
相关代码:
data=list(range(10)) #列表为从1到10(不包括10)的数字
print(data[-1]) #-1表示最后一个元素的下标
print(data[15]) #15不是有效下标,抛出异常
List=['YYQX','yyqx','XiZi']
print('YYQX'in List) #True
print('Yyqx'in List) #False
List=['Yyqx','yyqx','YyQx']
List.append([11,22])
print(List)
List.append('[11,22]')
print(List)
输出:
['Yyqx', 'yyqx', 'YyQx', [11, 22]]
['Yyqx', 'yyqx', 'YyQx', [11, 22], '[11,22]']
List=['Yyqx','YYQX','YYqx']
List.extend(['YyQx','YYQx'])
print(List)
#extend()追加数据是一个序列,把数据序列里面的数据拆开然后逐一追加到列表的结尾
输出:
['Yyqx', 'YYQX', 'YYqx', 'YyQx', 'YYQx']
List=['Yyqx','YYQX','YYqx']
List.extend('I Like YYQX')
print(List)
输出:
['Yyqx', 'YYQX', 'YYqx', 'I', ' ', 'L', 'i', 'k', 'e', ' ', 'Y', 'Y', 'Q', 'X'
list1=[1,2,3,4,5]
list1.reverse()
print(list1)
输出:
[5, 4, 3, 2, 1]
list1=['yyqx','YYQX','YyQx']
i=0
while i <len(list1):
print(list1[i])
i+=1
输出:
yyqx
YYQX
YyQx
list1=['yyqx','YYQX','YyQx']
for i in list1:
print(i)
输出:
yyqx
YYQX
YyQx
list=[['Y','Y','Q','X'],['y','y','q','x'],['Y','y','Q','x']]
print(list[2])
print(list[1][2])
输出:
['Y', 'y', 'Q', 'x']
q
Tuple(元组)
基本概念
- 元组是包含多个元素的类型,元素之间用逗号分割(如:t1=(123,456,“hello”))
- 可以通过把若干元素放在一对圆括号( )中创建元组,如果只有一个元素的话则需要多加一个逗号(如:(3,)),否则这个唯一的数据是什么类型,这整个元组就是什么类型
- 也可以使用tuple()函数把列表、字典、集合、字符串以及range对象、map对象、zip对象或者其他类似对象转换为元组
- 元组可以是空的,t2=()
- 一个元组也可以作为另一个元组的元素,此时,作为元素 的元组需要增加括号,从而避免分歧(如:t3=(123,456,(“hello”,“world”)))
- 元组各元素存在先后关系,可以通过索引访问元组中的元素
- 元组内的数据是不能修改的
- 与字符串类型类似,可以通过索引区来访问元组中的部分元素
- 如果元组里边有列表,修改列表里面的数据是支持的,但是修改元组内的直接数据会立即报错
- 与字符串一样,元组之间可以用+号和*号进行运算
切片操作
适用于列表、元组、字符串
切片是用来获取列表、元组、字符串等有序序列中部分元素的一种语法。在形式上,切片使用2个冒号分隔的3个数字来完成
[start:end:step]
其中第一个数字start表示切片开始位置,默认为0;第二个数字表示切片截止(但不包含)位置(默认为列表长度);第三个数字表示切片的步长(默认为1),省略步长时还可以同时省略最后一个冒号
当step为负整数时,表示反向切片,这使start应该在end的右侧
查找:
- 按下标查找数据
- index():查找某个数据,如果数据存在返回对应的下标,否则报错。语法和列表、字符串的index()方法相同
- count():统计某个数据在当前元组出现的次数
- len():统计元组中数据的个数
相关代码
data=list(range(20))
print(data[ : ]) #获取所有元素的副本
print(data[-3: ]) #最后3个元素
print(data[ : -5]) #除最后5个元素之外的所有元素
tuple1=(10)
print(type(tuple1))
tuple2=(10,)
print(type(tuple2))
输出:
<class 'int'>
<class 'tuple'>