当前位置: 首页 > 后端技术 > Python

你应该知道的9行Python代码

时间:2023-03-26 18:59:22 Python

当我们开始学习Python时,我们通常会优先考虑编写能够完成工作的代码,而不关注代码的可读性和代码的简单性和效率。完全没问题,但是有一些方法可以在不牺牲可读性的情况下缩短我们的Python代码。单行的Python代码,只要我们能正确使用它们,那么我们就能很好地平衡简洁性和可读性!下面9个学Python的同学都应该知道的单行代码,一起来看看吧~1.if——else语句if-else语句是我们在Python中最先学习的语句之一。它用于执行给定条件的真假部分。我们经常使用这个语句,但是你知道它可以减少到一行代码吗?在很多情况下,我们可以将if和else语句放在同一行age=18valid="You'reanadult"invalid="You'reNOTanadult"print(valid)ifage>=18elseprint(invalid)2。基于现有列表创建新列表列表是一种常见的数据存储方式,但您是否知道只需一行代码即可基于现有列表创建新列表?没错,它叫做列表推导,它提供了一种基于现有列表的值创建列表的简短语法。列表理解比用于制作列表的函数和循环更紧凑。下面是语法[expressionforiteminlist]让我们看一个例子words=['unitedstates','brazil','unitedkingdom']capitalized=[word.title()forwordinwords]>>>capitalized['UnitedStates','Brazil','UnitedKingdom']上面的代码确实看起来更好!但请记住,我们应该保持我们的代码对用户友好,因此不建议在一行代码中编写长列表理解。3.字典推导类似于列表推导,Python中也有字典推导。字典理解提供了一种简短的语法,可以在一行代码中创建字典。下面是栗子的语法{key:valueforkey,valueiniterable}dict_numbers={x:x*xforxinrange(1,6)}>>>dict_numbers{1:1,2:4,3:9,4:16,5:25}4.合并字典合并字典的方法有很多种,我们可以使用update()方法、merge()运算符,甚至字典理解。但是有一种更简单的方法可以在Python中合并字典,那就是使用解包运算符**。我们只需要在我们希望组合的每个字典前添加**并使用额外的字典来存储输出dict_1={'a':1,'b':2}dict_2={'c':3,'d':4}merged_dict={**dict_1,**dict_2}>>>merged_dict{'a':1,'b':2,'c':3,'d':4}我们将**当运算符应用于词典,既扩展其内容又合并以创建新词典。5.RemoveDuplicatesinList有时我们需要确保列表中没有任何重复值,虽然没有一种方法可以轻松做到,但我们可以使用set来去除重复值。集合是一个无序集合,其中每个元素都是唯一的。这意味着如果我们将列表变成一个集合,我们可以快速删除重复项。然后我们只需要再次将集合转换为列表即可。让我们看一个基本的例子来掌握它numbers=[1,1,1,2,2,3,4,5,6,7,7,8,9,9,9]>>>list(set(numbers))[1,2,3,4,5,6,7,8,9]6。在一行中分配多个变量每当我们需要分配多个变量时,我们可以在Python中在一行中分配它们,而不是逐行分配(即使来自不同类型的变量)。a,b,c=1,"abc",True>>>a1>>>b'abc'>>>cTrue简洁,但是需要注意的是,我们赋值的变量越多,赋值给一个值错误的几率越大,双刃剑~7.从列表中过滤值假设我们要从列表中过滤一些值,有很多种方法可以做到,但是一个简单的方法是使用filter()函数。这是过滤器函数的语法:filter(function,iterable)如果我们在过滤器函数中添加一个lambda函数就更好了!让我们通过过滤列表中的偶数来掌握它my_list=[10,11,12,13,14,15]>>>list(filter(lambdax:x%2==0,my_list))[10,12,14]8.按键对字典进行排序对字典进行排序并不像对列表进行排序那么简单——我们不能像使用列表那样使用sort()或sorted()对字典进行排序。但是我们可以将字典理解与sorted()函数结合起来,以按键对字典进行排序。在下面的示例中,我们将按产品名称对字典进行排序。product_prices={'Z':9.99,'Y':9.99,'X':9.99}>>{key:product_prices[key]forkeyinsorted(product_prices.keys())}{'X':9.99,'Y':9.99,'Z':9.99}9.按值对字典进行排序类似于对字典进行键排序,我们需要使用sorted()函数和列表推导来按值对字典进行排序,但我们也需要添加一个lambda函数。首先我们看一下sorted()函数的所有参数sorted(iterable,key=None,reverse=False)要按值对字典进行排序,我们需要用到key参数。此参数接受用作排序比较键的函数。在这里,我们可以使用lambda函数使事情变得更简单。假设我们有一个包含人口值的字典,我们想按值population={'USA':329.5,'Brazil':212.6,'UK':67.2}>>>sorted(population.items(),key=lambdax:x[1])[('UK',67.2),('Brazil',212.6),('USA',329.5)]现在唯一剩下的就是添加字典derivedpopulation={'美国':329.5,'巴西':212.6,'英国':67.2}>>>{k:vfork,vinsorted(population.items(),key=lambdax:x[1])}{'英国':67.2,'巴西':212.6,'美国':329.5}以上就是本次分享的全部内容。觉得文章还不错的话,请关注公众号:Python编程学习圈,每日干货分享,发送“J”还可以领取海量学习资料,涵盖Python电子书、教程、数据库编程、Django、爬虫、云计算等。或者去编程学习网了解更多编程技术知识。