解决日常编程问题的 10 个Python代码片段
近年来, Python编程语言拥有庞大的用户群。原因之一可能是与其他面向对象的编程语言(如Java、C++、C#、JavaScript)相比,它更容易学习,因此越来越多的进入计算机科学领域的初学者选择Python。 Python受欢迎的另一个原因是它几乎被用于 IT 行业的所有领域,无论是数据科学、机器学习、自动化、网络抓取、人工智能、网络安全、云计算等等。 !根据最近的开发者调查,可以看出Python目前是仅次于 JavaScript 的第二大最受欢迎的编程语言,并且在未来几年内很容易迅速崛起。对Python开发人员的需求显着上升,尤其是在过去几个月中,因此学习Python可以为您提供一些非常好的职业选择。
所以如果你是一名Python开发者,这篇文章绝对适合你。今天,我们将讨论Python代码片段及其简要说明,这些片段对开发人员和程序员的日常生活非常有用。我们将研究经常出现的各种编码问题,以及如何使用此处提供的Python代码片段来解决它们。所以让我们开始吧!
1. 使用 If-Else 进行列表理解
Python中的列表推导非常有用且功能强大。它们将代码长度缩短到很长,并使其更具可读性。在下面的代码中,我们可以看到我们正在检查 6 的倍数,然后使用列表中的 if-else 条件检查 2 和 3 的倍数,这在很大程度上减少了代码。
Python3
my_list = ['Multiple of 6' if i % 6 == 0
else 'Multiple of 2' if i % 2 == 0
else 'Multiple of 3' if i % 3 == 0
else i for i in range(1, 20)]
print(my_list)
Python3
my_dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
my_dict2 = {'d' : 4, 'e' : 5, 'f' : 6}
# Method 1
result = { **my_dict1, **my_dict2}
print(result)
# Method 2
result = my_dict1.copy()
result.update(my_dict2)
print(result)
# Method 3
result = {key: value for d in (my_dict1, my_dict2) for key, value in d.items()}
print(result)
Python3
# Open a file
f = open('filename.txt')
# Read from a file
f = open('filename.txt', 'r')
# To read the whole file
print(f.read())
# To read single line
print(f.readline())
# Write to a file
f = open('filename.txt', 'w')
f.write('Writing into a file \n')
# Closing a file
f.close()
Python3
import time
start_time = time.time()
# printing all even numbers till 20
for i in range(20):
if i % 2 == 0:
print(i, end = " ")
end_time = time.time()
time_taken = end_time - start_time
print("\nTime: ", time_taken)
Python3
person = [
{
'name' : 'alice',
'age' : 22,
'id' : 92345
},
{
'name' : 'bob',
'age' : 24,
'id' : 52353
},
{
'name' : 'tom',
'age' : 23,
'id' : 62257
}
]
# Method 1
person.sort(key=lambda item: item.get("id"))
print(person)
# Method 2
person = sorted(person, key=lambda item: item.get("id"))
print(person)
Python3
my_list = [8,4,8,2,2,5,8,0,3,5,2,5,8,9,3,8]
print("Most frequent item:", max(set(my_list), key=my_list.count))
Python3
num1, num2 = 2,0
try:
print(num1 / num2)
except ZeroDivisionError:
print("Exception! Division by Zero not permitted.")
finally:
print("Finally block.")
Python3
records = [
"Vani Gupta, University of Hyderabad",
"Elon Musk, Tesla",
"Bill Gates, Microsoft",
"Steve Jobs, Apple"
]
# Method 1
name = "Vani"
for record in records:
if record.find(name) >= 0:
print(record)
# Method 2
name = "Musk"
for record in records:
if name in record:
print(record)
Python3
language = "Python"
# Method 1
print(language + " is my favourite programming language.")
# Method 2
print(f"I code in {language}")
# Method 3
print("%s is very easy to learn." % (language))
# Method 4
print("I like the {} programming language.".format(language))
Python3
ugly_list = [10,12,36,[41,59,63],[77],81,93]
flat = []
for i in ugly_list:
if isinstance(i, list): flat.extend(i)
else: flat.append(i)
print(flat)
Output:
[1, ‘Multiple of 2’, ‘Multiple of 3’, ‘Multiple of 2’, 5, ‘Multiple of 6’, 7, ‘Multiple of 2’, ‘Multiple of 3’, ‘Multiple of 2’, 11, ‘Multiple of 6’, 13, ‘Multiple of 2’, ‘Multiple of 3’, ‘Multiple of 2’, 17, ‘Multiple of 6’, 19]
2.合并两个字典
合并两个字典或附加它们可能听起来很混乱。但令人惊讶的是,有不止一种方法可以合并两个字典。在下面的代码中,第一种方法使用字典解包,其中两个字典一起解包为result 。在第二种方法中,我们首先将第一个字典复制到结果中,然后使用第二个字典的内容对其进行更新。第三种方法是使用字典理解的简单实现,类似于我们在上面的列表理解中看到的。
Python3
my_dict1 = {'a' : 1, 'b' : 2, 'c' : 3}
my_dict2 = {'d' : 4, 'e' : 5, 'f' : 6}
# Method 1
result = { **my_dict1, **my_dict2}
print(result)
# Method 2
result = my_dict1.copy()
result.update(my_dict2)
print(result)
# Method 3
result = {key: value for d in (my_dict1, my_dict2) for key, value in d.items()}
print(result)
Output:
{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5, ‘f’: 6}
{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5, ‘f’: 6}
{‘a’: 1, ‘b’: 2, ‘c’: 3, ‘d’: 4, ‘e’: 5, ‘f
3.文件处理
文件处理用于各种Python程序,尤其是与我们需要读取大量逗号分隔值的数据相关的程序。文件处理具有各种操作,例如打开文件、读取文件、写入文件和关闭文件。
Python3
# Open a file
f = open('filename.txt')
# Read from a file
f = open('filename.txt', 'r')
# To read the whole file
print(f.read())
# To read single line
print(f.readline())
# Write to a file
f = open('filename.txt', 'w')
f.write('Writing into a file \n')
# Closing a file
f.close()
4.计算执行时间
通常需要优化代码和分析性能指标。在这里,时间图书馆来帮忙。我们可以测量代码的运行时间并对其进行优化。我们也可以用它来衡量两段代码做相同工作的运行时间,以便我们可以选择最优化的一段。
Python3
import time
start_time = time.time()
# printing all even numbers till 20
for i in range(20):
if i % 2 == 0:
print(i, end = " ")
end_time = time.time()
time_taken = end_time - start_time
print("\nTime: ", time_taken)
Output:
0 2 4 6 8 10 12 14 16 18
Time: 2.47955322265625e-05
5. 对字典列表进行排序
排序字典列表起初听起来令人生畏,但我们可以使用两种不同但相似的方法来做到这一点。我们可以简单地使用内置的sorted()或sort()函数,它使用内部的 lambda函数对列表起作用,该函数根据字典的“id”键对字典进行排序。在第一种方法中,返回类型为 None 因为更改已经到位,另一方面,在第二种方法中,返回一个新的排序字典列表。
Python3
person = [
{
'name' : 'alice',
'age' : 22,
'id' : 92345
},
{
'name' : 'bob',
'age' : 24,
'id' : 52353
},
{
'name' : 'tom',
'age' : 23,
'id' : 62257
}
]
# Method 1
person.sort(key=lambda item: item.get("id"))
print(person)
# Method 2
person = sorted(person, key=lambda item: item.get("id"))
print(person)
Output:
[{‘name’: ‘bob’, ‘age’: 24, ‘id’: 52353}, {‘name’: ‘tom’, ‘age’: 23, ‘id’: 62257}, {‘name’: ‘alice’, ‘age’: 22, ‘id’: 92345}]
[{‘name’: ‘bob’, ‘age’: 24, ‘id’: 52353}, {‘name’: ‘tom’, ‘age’: 23, ‘id’: 62257}, {‘name’: ‘alice’, ‘age’: 22, ‘id’: 92345}]
6. 寻找最高频率元素
我们可以通过将键作为元素的计数,即它们出现的次数,来找到出现时间最长的元素。
Python3
my_list = [8,4,8,2,2,5,8,0,3,5,2,5,8,9,3,8]
print("Most frequent item:", max(set(my_list), key=my_list.count))
Output:
Most frequent item: 8
7. 错误处理
错误处理是使用 try-catch (和 finally)来消除执行时突然停止的任何可能性。可能导致错误的语句被放入一个 try 块中,然后是一个捕获异常(如果有的话)的 except 块,然后我们有一个无论如何都会执行的“finally”块,并且是可选的。
Python3
num1, num2 = 2,0
try:
print(num1 / num2)
except ZeroDivisionError:
print("Exception! Division by Zero not permitted.")
finally:
print("Finally block.")
Output:
Exception! Division by Zero not permitted.
Finally block.
8. 在字符串列表中查找子字符串
这又是一段Python程序员经常遇到的非常常见的代码。如果我们需要在字符串列表中查找子字符串(也可以应用于更大的字符串而不仅仅是列表),我们可以使用 find() 方法,如果字符串中不存在该值,则返回 -1,或者返回第一次出现。在第二种方法中,我们可以直接使用in运算符来查看字符串中是否存在所需的子字符串。
Python3
records = [
"Vani Gupta, University of Hyderabad",
"Elon Musk, Tesla",
"Bill Gates, Microsoft",
"Steve Jobs, Apple"
]
# Method 1
name = "Vani"
for record in records:
if record.find(name) >= 0:
print(record)
# Method 2
name = "Musk"
for record in records:
if name in record:
print(record)
Output:
Vani Gupta, University of Hyderabad
Elon Musk, Tesla
9. 字符串格式化
字符串格式化用于格式化或修改字符串。有很多方法可以完成字符串格式化。在第一种方法中,我们使用了简单的将字符串相加的基本连接。在第二种方法中,我们使用 f-strings,其中变量名写在大括号中,并在运行时被替换。与第二种方法类似,我们有第三种方法,我们使用 %s,其中 s 表示它是一个字符串,在第四种方法中,我们使用 format()函数,它接受要插入的字符串或变量在字符串中作为参数,并将其放置在看到花括号的任何位置。
Python3
language = "Python"
# Method 1
print(language + " is my favourite programming language.")
# Method 2
print(f"I code in {language}")
# Method 3
print("%s is very easy to learn." % (language))
# Method 4
print("I like the {} programming language.".format(language))
Output:
Python is my favourite programming language.
I code in Python
Python is very easy to learn.
I like the Python programming language.
10. 扁平化列表
要展平或展开包含其他可变长度和数字列表的列表,我们可以使用 append() 和 extend() 方法并继续将其添加到新列表中。这两种方法的区别在于 append() 将单个变量添加到列表的末尾,使得列表的长度增加 1,而 extends() 将列表中的所有元素一个一个地作为参数传递给原始列表的末尾。
Python3
ugly_list = [10,12,36,[41,59,63],[77],81,93]
flat = []
for i in ugly_list:
if isinstance(i, list): flat.extend(i)
else: flat.append(i)
print(flat)
如果您使用Python编程语言,这些是一些经常使用的Python代码片段。希望你发现这些有用!