当前位置: 首页 > 科技观察

你应该知道的9行Python代码_0

时间:2023-03-22 13:26:00 科技观察

当我们开始学习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(数字))[1,2,3,4,5,6,7,8,9]6。在一行中分配多个变量每当我们需要分配多个变量时,我们可以在Python中在一行中分配它们,而不是逐行分配(即使来自不同类型的变量)。a,b,c=1,"abc",True>>>a1>>>b'abc'>>>cTrue很简洁,但需要注意的是,我们分配的变量越多,分配给它们的错误就越多一个值出现的几率越大,双刃剑~7.从列表中过滤值假设我们要从列表中过滤一些值,有很多种方法可以做到,但是一个简单的方法是使用过滤器()函数。这是过滤器函数的语法: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)]现在唯一剩下的就是添加字典理解。population={'USA':329.5,'Brazil':212.6,'UK':67.2}>>>{k:vfork,vinsorted(population.items(),key=lambdax:x[1])}{'UK':67.2,'Brazil':212.6,'USA':329.5}那么,今天就到此为止。