Python学习笔记(随笔)

196 阅读6分钟
人生苦短,我用Python

字符串处理

1、去除字符串两边空格:s.strip()

2、去除字符串左边空格:s.lstrip()

3、去除字符串右边空格:s.rstrip()

4、替换字符串中的字符:s.replace('c1','c2')(c1替换成c2)

5、通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分割num个字符串

#string:字符串(即不能修改的字符list)
str_main="Hello My Girl"
#子字符串的提取
child_str=str_main[:6]
print(child_str) # will return Hello

#字符串包含判断操作符:in,not in
is_bool='He' in str_main
print(is_bool) # will return True
is_notBool='He' not in str_main
print(is_notBool) #will return False

#字符串操作方法
#可指范围查找字串,返回索引值,否则返回-1
a=str_main.find('Gi',3,11)
b=str_main.rfind('Gi',3,11)
print(a) #will return 9
print(b) #will return 9

#s.index(),同find,找不到时产生ValueError异常
c=str_main.index('M',2,11)
print(c)
#返回找到字串的个数
d=str_main.count('l',2,11)
print(d)

#e=str_main.lowercase()
#print(e)

#首字母大写
f=str_main.capitalize()
print(f)#will return Hello my girl

#转小写
g=str_main.lower()
print(g)# will return hello my girl

#转大写
h=str_main.upper()
print(h)# will return HELLO MY GIRL

#大小写互换
i=str_main.swapcase()
print(i)# will return hELLO mY gIRL

#将string转list,以空格切分
j=str.split(str_main,' ')
print(j) #will return ['Hello', 'My', 'Girl']

#处理字符串的内置函数
k=len(str_main)
print(k)#will return 13

#判断字符串是否以某字串开头
l=str_main.startswith('H')
print(l) #will return True

#判断当前字符串是否是数字
str_num='3'
m=str_num.isnumeric()
print(m) #will return True

#判断字符串是否以某字串结尾
n=str_main.endswith('l')
print(n) #will return True

#返回字符串中tab符号('\t')转为空格后的字符串,默认是8个字符空格
str_tab="\tThis is a include tab string"
o=str_tab.expandtabs(0)
print(str_tab) # will return:	This is a include tab string
print(o) #will return:This is a include tab string

#检测字符串是否只由空格组成
str_space='     '
p=str_space.isspace()
print(p) #will return:True

#该方法返回一个原字符串,并用空格或设置的字符填充至长度width的新字符串
str_center='江先生'
q=str_center.center(20,'*')
print(q)# will return:********江先生*********

#该方法检测字符串是否由字母和数字组成
str_isAlnum='2w3e'
r=str_isAlnum.isalnum()
print(r) #will return:True

#该方法检测字符串是否只由字母组成。
str_isAlnum='2w3e'
str_isalpha='wwww'
s=str_isAlnum.isalpha()
t=str_isalpha.isalpha()
print(s)# will return:False
print(t)# will return:True

#该方法检测该字符串是否可以被打印
#True 如果字符串为空或者字符串中的所有字符都是可打印的
#False 如果该字符串至少包含一个不可打印的()字符
str.isprintable()

#返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写
str_title='my best friend'
u=str_main.title()

字典操作

#创建字典
dic={1:'one',2:'two',3:'three',4:'four'}

#添加元素
dic['First']='MyFirst'

#修改元素
dic['First']='MyTwo'

#删除元素
del dic['MyFirst']

#返回一个包含字典所有key的列表
keys=dic.keys()

#返回一个包含字典所有value的列表
values=dic.values()

#删除字典中的所有选项或元素
dic.clear()

#返回一个字典的副本,如果原字典改变,副本不会改变
dic1=dic.copy()

#创建并返回一个新字典,
dicc={}
dicNew=dicc.fromkeys([1,2,3],'myName')

#返回字典中key的值,如果该key不存在,则返回default的值,default的默认值是None
temp=dic.get(5,"不存在")

#删除并返回key对应value的值,如果key不存在,返回设置的default值,如果没有设置deauflt,返回keyError
dic.pop(2,'five')

#返回key对应的value,如果key不存在,返回default值,等同于dic.get(key,default)
dic.setdefault(4,default=None)

#adic和bdic同为字典,使用bdic更新adic,两个字典adic里面的键值对保持不变,将bdic存在但adic里面没有的键值对添加到adic里面
#如果具有相同的key,但value不同,则adic中的value变为bdic中的value
adic={}
bdic={'q':'w'}
adic.update(bdic)

列表操作:

定义:List:列表(即动态数组,C++标准库的vector,但可含不同类型的元素于一个list中)

list=['a',1,'b','c']#元素可为任何类型

下标:按下标读写,就当数组处理

以0开始,有负下标的使用

0第一个元素,-1最后一个元素

-len第一个元素,len-1最后一个元素

#创建列表
list=['a',1,('a','b')]

#得到列表中的某一个值
value1=list[2] #value=('a', 'b')
value2=list[-1] #value=('a', 'b')

#删除列表中的某一个值
del list[1]

#在列表中插入一个值
list[3]=['Add Value']

#得到列表的长度
list_length=len(list)

#列表遍历
for element in list:
    print(element)
print(value2)

#Python列表高级操作/技巧
#产生一个数值递增列表,will return a list[0,1,2,3,...,29]
num_list=range(30)
for item in num_list:
    print(item)

#用某个固定值初始化列表
initial_value=0
list_length=5
list=[initial_value for i in range(10)]
list_new=[initial_value]*list_length
print(list)#will return a list[0,0,0,0,0,0,0,0,0,0]
print(list_new)#will return a list[0,0,0,0,0]

#list方法
list=['a',1,('a','b')]

#在list末尾追加元素
list.append('New Add')
print(list) #will return ['a', 1, ('a', 'b'), 'New Add']

#在指定位置插入数据,若当前位置有值,则当前位置往后移
list.insert(3,'Insert Value')
print(list) #will return ['a', 1, ('a', 'b'), 'New Add', 'Insert Value']

#返回最后一个元素,并从list中删除之
value=list.pop()
print(list)#will return ['a', 1, ('a', 'b'), 'Insert Value']
print(value) # will return New Add

#删除第一次出现的该元素
list.remove('a')
print(list)# will return [1, ('a', 'b'), 'Insert Value']

#该元素在列表中出现的个数
count=list.count('Insert Value')
print(count)# will return 1

#返回该元素的位置,无则抛异常
index=list.index('Insert Value')
print(index) #will return 2

#追加newList,即合并newList到list上
newList=['e','r',3]
list.extend(newList)
print(list) #will return [1, ('a', 'b'), 'Insert Value', 'e', 'r', 3]

#取list的元素数量
length=len(list)
print(length)#will return 6

#对list 排序
list.sort()#正序
list.reverse() #倒序

#List操作符 : + , 关键字del
listNew=list[1:]
print(listNew) #will return [('a', 'b'), 'Insert Value', 'e', 'r', 3]

list_add=[1,2]+[5,6]
print(list_add) #will return [1, 2, 5, 6]

list_mul=[2]*4
print(list_mul) #will return [2, 2, 2, 2]

del list_mul[1]
print(list_mul) #will return [2, 2, 2]

#删除指定下标范围的元素
del list_mul[1:3]

元组:tuple

元组(tuple):tuple和list非常类似,但是tuple一旦初始化就不能修改。

tupleDemo=('one','two','three',1,['a','b'])
print(tupleDemo[0])
print(tupleDemo[-1])

#tuple陷阱,当你定义一个tuple时,在定义的时候,tuple元素就必须被确定下来,
#如果要定义个空的tuple,可以写成();
tuple_new=()

#如果要定义一个只有1个元素的tuple,
tuple_one=(1)
print(tuple_one)#返回的是1,而不是(1)这个元组,
#所以在定义一个元素的tuple时,也会加一个逗号,以免造成误解

#任何事情都不上绝对的,tuple是不可变的,但是元组可以放其他类型的元素
#如果想要可变,可以在其中定义一个list,从而达到元组可变的目的
tupleDemo[4][1]='c'
print(tupleDemo) # will return:('one', 'two', 'three', 1, ['a', 'c'])