![▍1、for循环中的else条件这是一个for-else方法,循环遍历列表时使用else语句。下面举个例子,比如我们想检查一个列表中是否包含奇数。那么可以通过for循环,遍历查找。numbers=[2,4,6,8,1]fornumberinnumbers:ifnumber%2==1:print(nu...](/templets/3_zixun/picture/199.jpg)
▍1、for循环中的else条件这是一个for-else方法,循环遍历列表时使用else语句。下面举个例子,比如我们想检查一个列表中是否包含奇数。那么可以通过for循环,遍历查找。numbers=[2......
▍1、for循环中的else条件
这是一个for-else方法,循环遍历列表时使用else语句。下面举个例子,比如我们想检查一个列表中是否包含奇数。那么可以通过for循环,遍历查找。
numbers=[2,4,6,8,1]fornumberinnumbers:ifnumber%2==1:print(number)breakelse:print("Nooddnumbers")如果找到了奇数,就会打印该数值,并且执行break语句,跳过else语句。没有的话,就不会执行break语句,而是执行else语句。
▍2、从列表中获取元素,定义多个变量
my_list=[1,2,3,4,5]one,two,three,four,five=my_list
▍3、使用heapq模块,获取列表中n个最大或最小的元素
importheapqscores=[51,33,64,87,91,75,15,49,33,82]print((3,scores))[15,33,33,49,51]
▍4、将列表中的所有元素作为参数传递给函数
我们可以使用*号,提取列表中所有的元素
my_list=[1,2,3,4]print(my_list)1234
如此便可以将列表中的所有元素,作为参数传递给函数
defsum_of_elements(*arg):total=0foriinarg:total+=ireturntotalresult=sum_of_elements(*[1,2,3,4])print(result)[2,3,4,5,6,7]
▍6、使用一行代码赋值多个变量
one,two,three,four=1,2,3,4
▍7、列表推导式
只用一行代码,便可完成对数组的迭代以及运算。比如,将列表中的每个数字提高一倍。
numbers=[1,2,3,4,5]squared_numbers=[num*numfornuminnumbers]print(squared_numbers){'a':16,'b':25}▍8、通过Enum枚举同一标签或一系列常量的集合
枚举是绑定到唯一的常量值的一组符号名称(成员)。在枚举中,成员可以通过身份进行比较,枚举本身可以迭代。
fromenumimportEnumclassStatus(Enum):NO_STATUS=-1NOT_STARTED=0IN_PROGRESS=1COMPLETED=2print(_)2
▍9、重复字符串
name="Banana"print(name*4)Trueprint(1xandx10){'name':'Fan','location':'Guangdong,Guangzhou','surname':'Xiao'}▍12、查找元组中元素的索引
books=('Atomichabits','Egoistheenemy','Outliers','Mastery')print(('Mastery'))[1,2,3]string="[[1,2,3],[4,5,6]]"my_list=string_to_list(string)print(my_list)-2print((subtract(3,1)))-2print((subtract(b=3,a=1)))HelloWorldprint("Hello",="")print("World")words,with,commas,in,between▍17、打印多个值,在每个值之间使用自定义分隔符
print("29","01","2022",sep="/")name@▍18、不能在变量名的开头使用数字
four_letters="abcd"thisdoesn’twork
这是Python的变量命名规则。
▍19、不能在变量名的开头使用运算符
+variable="abcd"thisdoesn'twork
这个确实挺神奇的。
▍21、在变量名的任何地方使用下划线
a______b="abcd"thisalsoworks
这并不意味着,你可以无限使用,为了代码的易读性,还是需要合理使用。
▍22、使用下划线分割数值较大的数字
print(1_000_000_000)1234567
如此,看到一大堆数字时,也能轻松阅读。
▍23、反转列表
my_list=['a','b','c','d']my_()print(my_list)ThisTsse
▍25、反向切片
my_string="Thisisjustasentence"print(my_string[10:0:-1])Taketwostepsforwardprint(my_string[10:0:-2])isjustasentenceprint(my_string[:3])1.5print(3//2)比较两个值print(first_list==second_list)是否指向同一内存print(first_listissecond_list)True
▍29、合并字典
dictionary_one={"a":1,"b":2}dictionary_two={"c":3,"d":4}merged={**dictionary_one,**dictionary_two}print(merged)Truesecond="ab"print(firstsecond)False▍32、使用id()查找变量的唯一id
print(id(1))4325776656print(id("string"))4325215472print(id(1))4325215536print(id(1))4422282544name="fatos"print(id(name))4482699712("Beijing")print(id(cities))4352726176my_(5)print(id(my_set))Positive▍38、使用sorted()检查2个字符串是否为相同
defcheck_if_anagram(first_word,second_word):first_word=first_()second_word=second_()returnsorted(first_word)==sorted(second_word)print(check_if_anagram("testinG","Testing"))Trueprint(check_if_anagram("Know","Now"))65print(ord("B"))66print(ord("a"))['a','b','c']▍41、获取字典的值
dictionary={"a":1,"b":2,"c":3}values=()print(list(values)){1:'a',2:'b',3:'c'}▍43、将布尔值转换为数字
print(int(False))1.0
▍44、在算术运算中使用布尔值
x=10y=12result=(x-False)/(y*True)print(result)Falseprint(bool(3))Trueprint(bool("string"))True▍46、将值转换为复数
print(complex(10,2))0xb
▍47、在列表的第一个位置添加一个值
如果使用app(),将从列表的最后一个位置插入新值。可以通过使用insert(),来指定插入新元素的索引和数值。那么列表的第一个位置为0,即下标为0。
my_list=[3,4,5]my_(6)my_(0,2)print(my_list)[1,3]print(my_list)[1,4,9,16]print(my_list)147
▍53、range()默认从0开始
defrange_with_zero(number):foriinrange(0,number):print(i,='')defrange_with_no_zero(number):foriinrange(number):print(i,='')range_with_zero(3)012
▍54、不需要和0比较长度
如果长度大于0,则默认为True。
defget_element_with_comparison(my_list):iflen(my_list)0:returnmy_list[0]defget_first_element(my_list):iflen(my_list):returnmy_list[0]elements=[1,2,3,4]first_result=get_element_with_comparison(elements)second_result=get_element_with_comparison(elements)print(first_result==second_result)Thirdaddress
▍56、在外部直接访问私有属性
在定义属性或方法时,在属性名或者方法名前增加两个下划线,定义的就是私有属性或方法.如果想要在外部访问,那么只需要在名称前面加上'_类名'变成'_类名__名称'。
classEngineer:def__init__(self,name):=nameself.__starting_salary=62000dain=Engineer('Dain')print(dain._Engineer__starting_salary)56▍58、定义一个方法,可以调用任意个参数
defget_sum(*arguments):result=0foriinarguments:result+=ireturnresultprint(get_sum(1,2,3))15print(get_sum(1,2,3,4,5,6,7))TsinghuaUniversity
使用父类的名称调用父类。
classParent:def__init__(self,city,address):==addressclassChild(Parent):def__init__(self,city,address,university):Parent.__init__(self,city,address)=universitychild=Child('PekingUniversity','FudanUniversity','TsinghuaUniversity')print()两数相加print('first'+'second')2000print(total_)True同样的,==操作符使用__eq__方法。
classJourney:def__init__(self,location,destination,duration):===durationdef__eq__(self,other):return((==)and(==)and(==))first=Journey('LocationA','DestinationA','30min')second=Journey('LocationB','DestinationB','30min')print(first==second)还有一些其他的定义。
__sub__()for-__mul__()for*__truediv__()for/__ne__()for!=__ge__()for=__gt__()for
▍62、为类的对象定义自定义的可打印版本
classRectangle:def__init__(self,a,b):==bdef__repr__(self):returnrepr('Rectanglewitharea='+str(*))print(Rectangle(3,4))tHISISJUSTASENTENCE.▍64、检查字符串是否都是空格
string=""result=()print(result)Truename="SecurePassword"print(())Truename="133"print(())Truestring="FirstnameLastname"print(())False
▍67、根据参数删除字符
从右侧开始。
string="Thisisasentencewith"print(())"thishereisasentence"
同样的,左侧也能操作。
string="ffffffffFirst"print(("f"))Falsestring="1337"print(())Falsestring="2**5"print(())42673string="四二六七三"print(())True▍70、检查字符串是否所有单词都是大写开头
string="Thisisasentence"print(())Truestring="HowtoPrintAStringinPython"False
▍71、在元组中使用负索引
numbers=(1,2,3,4)print(numbers[-1])1
▍72、在元组中嵌套列表和元组
mixed_tuple=(("a"*10,3,4),['first','second','third'])print(mixed_tuple[1])('aaaaaaaaaa',3,4)▍73、快速统计元素在列表中出现的次数
names=["Besim","Albert","Besim","Fisnik","Meriton"]print(("Besim"))[4,5,6]print(my_list[-3])Science▍75、计算元素在元组中出现的次数
my_tuple=('a',1,'f','a',5,'a')print(my_('a'))2▍77、步进获得元组
my_tuple=(1,2,3,4,5,6,7,8,9,10)print(my_tuple[::3])(4,5,6,7,8,9,10)
▍79、将列表、集合、字典中所有元素删除
my_list=[1,2,3,4]my_()print(my_list)set()my_dict={"a":1,"b":2}my_()print(my_dict){1,2,3,4,5,6}还可以使用update()方法,将第二个集合的元素插入到第一个集合中去。
first_set={4,5,6}second_set={1,2,3}first_(second_set)print(first_set)Positiveis_positive(-3)▍82、if语句中的多个条件
math_points=51biology_points=78physics_points=56history_points=72my_conditions=[math_points50,biology_points50,physics_points50,history_points50]ifall(my_conditions):print("Congratulations!Youhavepassedalloftheexams.")else:print("Iamsorry,butitseemsthatyouhavetorepeatatleastoneexam.")Congratulations!Youhavepassedalloftheexams.▍84、任何非空字符串都为True
print(bool("Nonempty"))False▍85、任何非空列表、元组、字典都为True
print(bool([]))Falseprint(bool({}))True▍86、None、False、0都为False
print(bool(False))Falseprint(bool(0))string
可通过修饰符global,修改全局变量的值。
string="string"defdo_nothing():globalstringstring="insideamethod"do_nothing()print(string)Counter({'a':3,'n':2,'B':1})result=Counter([1,2,1,3,1,4,1,5,1,6])print(result)Trueprint(check_if_anagram('Here','Rehe'))False可以使用sorted()方法。
defcheck_if_anagram(first_word,second_word):first_word=first_()second_word=second_()returnsorted(first_word)==sorted(second_word)print(check_if_anagram("testinG","Testing"))Trueprint(check_if_anagram("Know","Now"))Counter({2:5,1:1,3:1})print(_common())a▍93、copy()和deepcopy()的区别
浅拷贝:拷贝父对象,但是不会拷贝对象的内部的子对象。
深拷贝:拷贝父对象.以及其内部的子对象。
下面是一个copy()的例子。
first_list=[[1,2,3],['a','b','c']]second_list=first_()first_list[0][2]=831print(first_list)[[1,2,831],['a','b','c']]
这里是一个deepcopy()的例子。
importcopyfirst_list=[[1,2,3],['a','b','c']]second_list=(first_list)first_list[0][2]=831print(first_list)[[1,2,3],['a','b','c']]
▍94、访问字典中不存在的键时,避免报错
如果你想访问字典一个不存在的键,代码会报错。
my_dictonary={"name":"Name","surname":"Surname"}print(my_dictonary["age"])错误如下。
KeyError:'age'
可以通过使用defaultdict(),代码将不会报错。
fromcollectionsimportdefaultdictmy_dictonary=defaultdict(str)my_dictonary['name']="Name"my_dictonary['surname']="Surname"print(my_dictonary["age"])
▍95、构建迭代器
classOddNumbers:def__iter__(self):=1returnselfdef__next__(self):x=+=2returnxodd_numbers_object=OddNumbers()iterator=iter(odd_numbers_object)print(next(iterator))3print(next(iterator))[1,2,3,4,5]
▍97、打印模块的安装位置
importpandasprint(pandas)[0,2,4,6,8]
▍99、sort()和sorted()的区别
sort():对原始列表进行排序
sorted():返回一个新的排序列表
groceries=['milk','bread','tea']new_groceries=sorted(groceries)groceries=['milk','bread','tea']print(groceries)()根据主机ID、序列号和当前时间生成UUIDprint(())生成一个随机UUIDprint(())#93bc700b-253e-4081-a358-24b60591076a
