Python的list结构
将自己平常做项目常用到的一些Python数据结构的详细函数写了出来,方便记录和查阅
a=[]#即列表形式
a.append(A) append表示添加一个A元素,可以是任何对象
a.clear() 删除a列表的所有元素
a.count(A) 返回A在列表中出现的个数
a.extend(B) B也是一个列表形式或者可迭代元素,添加到a末尾,比如元祖等,都可以加入列表中
del a[1] 删除a中第一个位置的数
a.index(A) 在a中查找A的首次出现位置
a.insert(1,A) 在1处插入A这个元素
a.pop(1) 删除1处的元素
len(a) 返回列表中元素个数
max(a),min(a) 返回列表的最大值和最小值
a.reverse() 翻转a列表的顺序,仅对a列表进行改变,无法赋值
b=list(reversed(a)) 则输出a翻转后的结果
两者区别:b=a.reverse()则b=None,而b=list(reversed(a))则输出a翻转后的结果
a.sort(reverse=False) 对a中的元素进行排序,默认是从小到大,如果想从大到小的话,reverse=True
sorted(a,reverse=False) 本质上与前一个sort一样
两者的区别在于:b=a.sort(),则b=None,而b=sorted(a)则b等于a排序后结果
################################################################
zip(a,b),#a,b均为列表形式,ab对应位置元素捆在一起打包形成元祖
例:
a=[1,2,3],b[4,5,6]
list(zip(a,b))#[(1,4),(2,5),(3,6)]
################################################################
enumerate(a),本质上给a列表增加索引列
例:
a=[1,2,3]
list(enumerate(a))#[(0,1),(1,2),(2,3)]
列表表达式:
b=[i for i in a if i>1]
例:
a=[1,2,3]
b=[i for i in a if i>1]#[2,3]
a[0]:第一个元素
a[1]:第二个元素
a[-1]:倒数第一个元素
a[1:4]:第二个元素到第4个元素 取出来
a[2:]:第三个元素到最后
a[:-1]:从头取到最后一个元素
a[0:4:2]:从头去到第四个元素,并且步长是2
Python的元祖结构:
元祖属于不可变序列,一旦创建,就不可以改变
a=(1,2)
a.count(1) #输出元祖中1的个数
a.index(1) #找到1所对应的位置,且仅返回第一个1的位置
Python的集合结构:
集合中的值是不可以重复的
a={1,2,3}
a.add(4) a={1,2,3,4} add可以push一个值
a.update([4,5,6]) a={1,2,3,4,5,6} update可以push一个列表,元祖,集合形式
push进去的值如果有重复的话,会自动删除
a.len() 输出a的长度
a.remove(2) a={1,3} 操作失误会报错
a.discard(2) a={1,3} 操作失误不会报错
a.pop() a={1,2} 只会删除最后一个数
a.clear() 清空整个集合
del add 彻底删除整个集合
###################################################################
两个集合的操作:
a={1,2,3},b={3,4,5,6}
c=a.union(b)=a|b 实际上是并集 c={1,2,3,4,5,6}
c=a.intersection(b)=a&b 实际上是交集 c={3}
c=a.difference(b)=a-b 实际上是差集 c={1,2}
a.issubset(b)=a<b 判断a是不是b的子集
a.update(b) a={1,2,3,4,5,6}
Python的字典结构:
car = {"brand": "Porsche","model": "911","year": 1963}
a.get(A):取出Key=A的对应的Value
例:
x = car.get("model") #x='911'
x=car.keys() #x=dict_keys(['brand', 'model', 'year'])
x=car.values() #x=dict_values(['Porsche', '911', 1963])
想正常输出:print(list[x]) #['Porsche', '911', 1963]
输出所有键名 默认情况下字典只输出键
for x in car:
print(x)
#brand
#model
#year
输出所有值:
for x in car:
print(car[x])
输出所有值:
for x in car.values():
print(x)
#Porsche
#911
#1963
输出键值对:
for x,y in car.items():
print(x,y)
#brand Porsche
#model 911
#year 1963
len(car) 字典长度
添加字典的两种方式:
1.car["color"]="red"
2.car.update({"color":"red"})
删除字典的两种方式:
1.car.pop("brand")
2.del car["brand"]
清空字典:
car.clear()
Python字符串常见操作:
翻转字符串操作:
txt="abc"[::-1]
print(txt) #cba
find:查询字符在字符串中的位置:
myName = "hello world hello python"
print(myName.find("python")) #18,即p在字符串中的位置
index:在某个范围内查找某个字符串
print(myName.index("el",0,5))#1,即在0-4的范围内查找el
replace:将某个字符串替换成另一个字符串
myName.replace("hello", "222")#"222 world 222 python"
split:
myName.split(" ") #输出:['hello', 'world', 'hello', 'python'],按照空格进行划分
myName.split(" ", 2) #输出:['hello', 'world', 'hello python'] 表示最多只能分割2个
startwith():
myName.startswith("h") #输出:True 判断开头是不是h
endswith():
print(myName.endswith("on"))#与上面同理 判断结束是不是on
upper(): myName.upper() 小写换成大写
lower(): myName.lower() 大写换成小写
title(): myName.title() 字符串每个单词的首字母换成大写
partition():
myName.partition('world') #输出:('hello ', 'world', ' hello python') 从world处将字符串分为三个部分
strip:默认去掉字符前后端的空格,换行符 如果有输入的话,那就去掉输入的内容对应的字符
注意!strip只能去掉字符串的开头和结尾的字符,不能去掉中间的!
myName.strip('hello') # "world hello python"
join():将列表转换为字符串!
list=["A","B","C","D"]
myNameB="_"
myNameB.join(list) 输出:A_B_C_D
在list的每一个字符后面插入一个myNameB,构造新字符串
li=['aa','bb','cc']
li_2="".join(li) li_2='aabbcc' 实现了列表到字符串的转变
is系列:
1.isalpha():如果myName所有字符都是字母则返回True,否则返回False
2.isalnum():如果mystr所有字符都是字母或数字,则返回True,否通则返回False
3.isdigit():判断字符串是不是都是0-9
4.isdecimal():如果字符串只包含数字字符,并且非空,返回True,这俩其实一样
5.isspace():如果myName中只包含空格,则返回True,否则返回False
6.isupper():判断是否全是大写
7.islower():判断是否全是小写
8.istitle():判断首字母是否大写,其余的是否小写
删除空白字符:
1.lstrip():删除myName左边的空白字符
2.rstrip():删除myName字符串末尾的空白字符
3.strip():删除myName字符串两端的空白字符
count:统计字符串中某个字符出现的次数
myName.count('p') #输出1 且为int 类型
input :输入默认为str类型
print():输出
%s:字符串
%d:有符号十进制数字
%f:浮点数 %.2f表示只显示小数点后两位
例:
a='Python'
text="%s aabb" %a #输出"Python aabb"
format占位符:
在字符串中留{x},后面.format中保留一个元祖,其中x就是第x的位置的元素的值
text="{1}aabbccdd{0}".format('小胖','巴巴') #即输出:"巴巴aabbccdd小胖"
字符串也常用+进行拼接
s='s'+str(1) #s1
小技巧:
‘{:0>5d}’.format(1) #00001,以此类推。
Python常用运算符:
1.+
2.-
3.*
4./
5.// 整数除
6.% 取余数
7.** 幂