1.python3有6个标准数据类型
①.Number(数字):包括int,float,bool,complex(复数,如:2+3j)。
-
Number类型可以通过str()来转换为字符串,如str1=str(123)会转换为’123’;
-
Number不能转换为list、tuple等,但如果将Number转换为string,然后就可以转换为list,但是转换后的结果是把数字分开。有意思的是,如果转换为字符串后再转换为数组array类型,则还是输出原来的数字(当然,数字也可以直接转换为数组)。
num1 = 24.6 str1 = str(num1) list1 = list(str1) print(list1) # 输出的是['2', '4', '.', '6'] array1=np.array(str1) print(array1)# 输出的是24.6
②.String(字符串):双引号或单引号(用法相同),没有char类型。
- 字符串引号前面加r表示原始字符串,即对其中的转义不做处理,如print(r’\n’)输出的就是\n;
- 前面加u表示unicode编码。
- 字符串格式化:(%是运算符,用%d加入数字,%s加入字符串)如:str = ‘这个数字是: % d’ % 2。最终结果会把2和%d替换。
- byte二进制字节,可以通过bytes(str,encoding=‘utf-8’),来将字符串以utf-8的格式转换为字节流。bytes和string是严格区分的,使用bytes即告诉计算机不需要它来自动编码文档,而是手动决定要操作文档的格式。
- 如果内容合适的话,字符串可以转换为除了字典外的任何类型。
③.List(列表):[]+逗号。类似于数组,但是允许不同的数据类型在同一列表中。
- 删除一个列表中的值时候,后面的值会自动向前补空位置。即del(list[0])后,依然可以读取list[0]。
- 列表可以嵌套
- 元组可以转换为列表:list_after=list(tuple1),同样列表也可以转换为元组。
- 列表可以和array(数组)互相转换,array不是基本类型需要导入如架包。
import numpy as np
array1=np.array([[1,2,3],[4,5,6],[7,8,9]])
list1=array1.tolist()
print(type(array1))#输出<class 'numpy.ndarray'>
#数组转换为列表用tolist()
print(type(list1))#输出<class 'list'>
#列表转换为数组直接用np.array()
array2=np.array(list1)
print(type(array2))#输出<class 'numpy.ndarray'>
>
④.Tuple(元组):()+逗号,元组和列表类似,区别在于初始化后元组无法修改(除非转换成其他类型,如list),元组更安全一点。
当元组中只有一条数据的时候,该条数据后面要加一个逗号才能保证它的类型依然是元组,因为只有一个数据时,括号的意义是数学中的括号,如tuple1=(‘first’,)。
⑤.Set(集合):{}+逗号,无序且不重复的一些数据。集合和列表、元组、数组之间都可以显式的相互转换.
set1={1,2,4,5,1}
print(set1)#会输出{1,2,4,5}
list1=[1,2,4,2,5]
set2=set(list1)#列表可以转换为集合,输出set2的时候依然会删除重复值
⑥.Dictionary(字典):{key1:value1,key2:value2},字典不能通过下标来取值。
dict1.popitem()#删除,随机删除一组元素,就是删除末尾
- dict1.pop(key)#移除,通过删除键来删除值
- dict1.clear()#清除全部数据
字典的键值:
key在一个字典中是唯一且不可变的,所以键可以是数字、’字符串或元组,但不能是列表。值可以是任何对象
dict1={(1,2,3):"Monday,Tuesday,Wednesday",4:"Thursday",5:"Friday",6:"Saturday"}#key是元组和数字
print(dict1[(1,2,3)])#会输出Monday,Tuesday,Wednesday
备注: python中的可以哈希(或者说支持哈希)就是不可以改变的数据结构,如Tuple、string、Object。