python中的常见变量类型有:数,字符串,列表,字典和集合这篇博客是将这些变量的基本函数操作做一个记录,方便使用时候进行查询:
1.数字:
数字有整数,浮点数和复数
整数:num.bit_longth() (返回整数所占的位数)
abs(num) 返回num的绝对值,(复数返回模)
复数:num.real返回复数的实部,
num.imag返回复数虚部
num.conjugate()返回复数的共轭复数
数的更多操作在math包中,这里不进行详细叙述,以后的博客会对math包和其他包进行详细介绍
2.字符串:
字符串可以进行切片,例如:str[a:b:c]含义为返回一个从字符串str中截取的一个从a开始到b结束,每c个长度取一个字符所组成的字符串,其中如果c为正数,则a要小于等于b,c为负数,a应当大于等于b(如果a或b为负数,表示的是从字符串尾部计算的第几个字符如-1表示最后一个字符,和len(str)-1表示同一个字符,即a和b表示的是位置,所以可以不同号)注意第b个字符是取不到的,即开区间[a,b)
str='abcdefghij' print(str[-1:1:-1])
该代码输出:jihgfedc
len(str) 返回str的长度,也可用于列表,元组,字典元素的个数
str='abcdefghij' print(len(str)) inof={1:2,2:3,3:4} print(len(inof)) s=set([1,2,4,6]) print(len(s)) tup=(1,2,3) print(len(tup))
以上代码的输出为:10 3 4 3
str.center(a,b)a是整数,b是字符,将str居中,如果str字符不够a个空余的用b填充如果a小于str长度则返回的是原字符串
str='abcdefghij' print(str.center(12,"&")) print(str.center(7,'&'))
代码输出:&abcdefghij& abcdefghij
注意str本身是不会发生改变的,只是该函数返回一个新的字符串,并不是在该字符串上进行操作,字符串类型是不可改变类型,只能被覆盖,关于字符串的所以函数都是如此,是得到新的字符串,原字符串不变。新字符串需要承接
str.endswith(a),判断str是否以字符串a结尾,是返回Ture否返回False
str.startswith(a)判断str是否以a作为前缀,返回Ture,False
str.index(a,begin,end),查找,str[begin,end+1]中是否包含a,包含则返回该字符串所在位置否则报错
str.lstrip(a)删除str第一个字母,直到首字母不为a字符如果str首字母本来就不为a字符返回原字符串(默认空格)
str.rstrip(a)删除末尾指定字符,默认空格
str.upper()str中小写字母转大写字母
str.lower()str中大写字母转小写字母
str.replace(a,b,c),将str中的a字符(或字符串)替换为b字符(或字符串),替换c次,若c不写则默认全部替换得到的
str.split(a,b)以a字符(或字符串)为分割符号,将str分割为多个字符串,以列表形式返回出来,b如果有值,表示只使用前b个a作为分割符号,否则全部的a都作为分隔符
str.strip(a)移除首尾a字符若a中有多个字符,则表示首尾字符不能是a中的字符
str.join(str2),str2是一个序列,可以是字符串,列表等,将str作为填充,组成一个新的字符串如下:
str='aabaaaaaababbabcdefghijjaabaaaaaaaaaaaaaaaaaa' a=['s','k','t'] print(str.join(a))
输出:
saabaaaaaababbabcdefghijjaabaaaaaaaaaaaaaaaaaakaabaaaaaababbabcdefghijjaabaaaaaaaaaaaaaaaaaat
str.isalpha()检测字符串是否只有字母
str.isdigit()检测字符串是否只有数字
字符串的格式化输出
“{}str{}...”.format('a','b'...){}内的内容和后面‘’中的内容相对应,{}内可填入数字,表示该处的应当是()内的第几个字符串(注意{}内如果填数字必须都填)
3.列表:
list=[],列表切片和字符串类似,列表中的元素可以是不同类型的
list.append(a)列表中增加新值a
list.extend(list2)list和list2合并得到的是一个新的 list
list.insert(begin,value),在list的begin位置插入value值
list.pop(begin),弹出list中的begin位置的值(相当于删除,但是函数本身会返回该begin位置的值)如果不填入begin,默认最后一位
list.sort(key=func,reverse=Ture),将list中的成员以func作为基准,按照reverse中的规则进行排序,Ture表示降序
list.copy() 返回一个和list值相同的列表
list.count(value)返回value在list中出现的次数
4元组
tup=()
单个的元组应写为(value,)
多个写为(value,value,.......,value)
del tup 删除元组tup
any() 元组中有Ture则为Ture(元组中元素 ,0,空,False三种状态表示False)
all()元组有False则为False
zip(a,b)将a,b,打包成元组
zip(*)解压元组
4字典:由key与value成对组成,在每个字典中,key是独一无二的
info={key:value,key:value......}
dict()创建字典
info.get()访问key若key不存在返回false
del info[]删除指定键值对
info.clear()清空字典
len(info)测键值对个数
info.key()返回所有key
dict.value()返回所有字典值
dict.items()返回所有键值对的元组列表
关于python的赋值,浅拷贝和深拷贝
1. copy.copy 浅拷贝 只拷贝父对象,不会拷贝对象的内部的子对象。
2. copy.deepcopy 深拷贝 拷贝对象及其子对象
一个很好的例子:
# -*-coding:utf-8 -*-
import copy
a = [1, 2, 3, 4, ['a', 'b']] #原始对象
b = a #赋值,传对象的引用
c = copy.copy(a) #对象拷贝,浅拷贝
d = copy.deepcopy(a) #对象拷贝,深拷贝
a.append(5) #修改对象a
a[4].append('c') #修改对象a中的['a', 'b']数组对象
print('a = ', a)
print('b = ', b)
print('c = ', c)
print 'd = ', d
输出结果:
a = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
b = [1, 2, 3, 4, ['a', 'b', 'c'], 5]
c = [1, 2, 3, 4, ['a', 'b', 'c']]
d = [1, 2, 3, 4, ['a', 'b']]