当咱们开始学习 Python 时,咱们通常会优先编写可能实现工作的代码,而不会关注代码的可读性以及代码的简洁性和效率。
确切来说,这是齐全没有问题的,然而有一些办法能够在不疏忽可读性的状况下缩短咱们的 Python 代码。单行 Python 代码,只有咱们可能正确的应用它们,那么咱们将可能很好的兼顾简洁和可读性!
上面任何学习 Python 的同学都应该晓得的 9 条单行代码,咱们一起来看看吧~
1. If — Else 语句
if-else 语句是咱们在 Python 中学习的第一批语句之一,它用于执行给定条件的虚实局部。
咱们常常应用这个语句,然而你晓得它能够被简化为一行代码吗?在很多状况下,咱们齐全能够把 if 和 else 语句放在在同一行中
age = 18
valid = "You're an adult"invalid ="You're NOT an adult"
print(valid) if age >= 18 else print(invalid)
2. 依据现有列表创立新列表
列表是一种罕用的数据存储形式,但你晓得只需一行代码即可基于现有列表创立新列表吗?
没错,它被称为列表推导,它提供了一种基于现有列表的值创立列表的简短语法,列表推导比用于制作列表的函数和循环更紧凑。
上面是语法
[expression for item in list]
咱们来看个例子
words = ['united states', 'brazil', 'united kingdom']
capitalized = [word.title() for word in words]
>>> capitalized
['United States', 'Brazil', 'United Kingdom']
下面的代码的确看起来更好!然而要记住,咱们应该放弃代码对用户敌对,因而不举荐在一行代码中编写很长的列表推导式。
3. 字典推导
与列表推导相似,Python 中也有字典推导。字典推导提供了一种简短的语法,能够在一行代码中创立字典。
上面是语法
{key: value for key, value in iterable}
来个栗子
dict_numbers = {x:x*x for x in range(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. 删除列表中的反复项
有时咱们须要确保列表中没有任何反复值,只管没有一种办法能够轻松进行解决,但咱们能够应用 set
来打消反复项。
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
>>> a
1
>>> b
'abc'
>>> c
True
很简洁吧,然而须要留神的是,咱们调配的变量越多,将它们调配给谬误值的机会就越大,双刃剑啊~
7. 从列表中过滤值
假如咱们想从列表中过滤一些值,能够应用许多办法来做到这一点,但有一种简略的办法是应用 filter() 函数。
这是过滤器函数的语法:
filter(function, iterable)
如果咱们在过滤器函数中增加一个 lambda 函数,成果会更好!
让咱们通过从列表中过滤偶数来把握它
my_list = [10, 11, 12, 13, 14, 15]
>>> list(filter(lambda x: 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] for key in sorted(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=lambda x:x[1])
[('UK', 67.2), ('Brazil', 212.6), ('USA', 329.5)]
当初惟一剩下的就是增加字典推导了
population = {'USA':329.5, 'Brazil': 212.6, 'UK': 67.2}
>>> {k:v for k, v in sorted(population.items(), key=lambda x:x[1])}
{'UK': 67.2, 'Brazil': 212.6, 'USA': 329.5}
好了,这就是明天分享的全部内容,喜爱就点个赞吧~
本文由 mdnice 多平台公布