Python 数据结构
2017-06-24 14:34:39
1、整数和长整数
2、浮点数
3、复数,形如1+4j等
4、字符串 单引号双引号均可,也有三引号的写法,三引号的作用是为了实现多行字符串的操作
常用函数:
len():得到字符串的长度
5、列表list
打了激素的数组,相比于c++里的数组,列表要强悍的多,无分数据类型,都可以放进去。列表是一个可变的数据类型,形如:a=[0,1,2,3]
访问元素和数组一致,list[0]...,下标值可以是负数,list[-1]表示最后一个数,list[:]表示整体的一个拷贝,list[:-1]表示除了最后一个数的切片
同时可以切片list[0:3],依然是前开后闭,即只有0,1,2,类似于matlab
可以用for item in list:来遍历列表
列表是一个序列
列表综合就是通过一个列表来得到另一个列表
mylist = [1,2,4,8] myother = [2*i for i in mylist if i>=2 ] print(myother)
常用的函数:
.len():列表长度
.append():末尾添加一个元素
.extend():参数类型为列表 ,在末尾添加多个元素
.insert(pos,key):在pos位置添加key
.remove(key):删除首个key
del list[0]:根据下标来删除,可以删除整个列表
6、元组 tuple
元祖和列表非常类似,只是元祖是不可变的
元祖一般的表示方法为a=(1,2,3),逗号是标识元组的根本,如果去掉(),其数据类型依然是元组
元组的元素不可增删改
空元组 a=()
只含有一个元素的 a=(1,),逗号必不可少
元组的一个具体使用的例子就是print函数
name = "TIMHY" age = 22 print("%s的年龄是%d" %(name,age))
元组是一个序列
7、字典 dict
类似于stl 中的map,采用的是key,value的存储形式,具体形式:a={'a'=1,'b'=2,'c'=3}
字典的添加也和map一样,即a['d']=4
字典的删除和list一样,使用索引值可以完成删除操作,即del a['a']
可以使用for aipha,number in a.items():完成遍历
dict.get(key, default=None) 函数返回指定键的值,如果值不在字典中返回默认值,第二个参数可以自行设定。
dict.update(dict2):函数把字典dict2的键/值对更新到dict里,无返回值
8、集合 set
与数学中的集合定义是一致的,也就是说具有唯一性,无序性(这和stl中的set是不同的,stl 中的会自动排序,因为底层使用的是红黑树实现的)
初始化方法有两种,一是a={1,2,3}
另外也可以使用list来初始化集合,a=set(list)
常用函数:
.add(key):添加一个数
.remove(key):由于set的无序性,所以只能用remove()方法来根据数值删除元素,无法通过下标完成删除
支持 x in set, len(set),和 for x in set
frozenset:不可变集合,初始化后则无法修改
其他的一些内容:
函数传参:*args 表示元组,**args表示字典,就是说在参数有剩余的时候会自动转为元组,和字典进行传参
def fun(list): rst=0 for i in list: rst+=i return rst ls=[1,2,3] print(fun(ls)) def fun1(*list): rst=0 for i in list: rst+=i return rst print(fun1(1,2,3))
type():用来判断变量类型
isinstance()函数: 判断数据类型
isinstance(520,int) 得到true
eval(string s): 计算字符串中符合python表达式规范的式子值
ls=[1,2,3] print(eval(repr(ls))) print(eval("1+5*6"))
repr将对象转成字符串,一般用做输出用,没有实际意义,区别与str(),因为str()函数是将数值转成字符串。一般来说有eval(repr(a))==a