10个Python开发中的小技巧

hello,大家好,我是wangzirui32,今天我们来学习10个Python开发中的小技巧,开始学习吧!

目录

  • 1. 列表推导式
  • 2. 字典推导式
  • 3. 格式化字符串
  • 4. 列表快速去重
  • 5. 赋值语句上的条件判断
  • 6. 快速筛选列表差异元素
  • 7. 快速连接列表元素为字符串
  • 8. 表达式中的赋值
  • 9. 快速反转字符串
  • 10. 快速交换两个变量的值

1. 列表推导式

原代码:

# 将numbers中的每个数进行平方运算
# 同时将结果存入new_numbers中
numbers = [1, 2, 3, 4, 5]
new_numbers = []
for i in numbers:
	new_numbers.append(i**2)
print(new_numbers)

改进后:

numbers = [1, 2, 3, 4, 5]
new_numbers = [i**2 for i in numbers]
print(new_numbers)

上面的代码对比起来是不是更简洁了?下面来看字典推导式。

2. 字典推导式

原代码:

numbers = [1, 2, 3]
new_numbers = {}

for i in numbers:
    numbers[i] = i**2

print(new_numbers)

改进后:

numbers = [1, 2, 3]
# {键:值 for x in xxx}
new_numbers = {i:i**2 for i in numbers}
print(new_numbers)

两段代码执行的效果是一样的。下面来看格式化字符串。

3. 格式化字符串

原代码:

name = input("请输入您的名称:")
age = input("请输入您的年龄:")

print("您是" + name + ",今年" + age + "岁。")

改进后:

name = input("请输入您的名称:")
age = input("请输入您的年龄:")

print(f"您是{name},今年{age}岁。")

注意,这个功能Python3.8之后才被加入,或者可以这样做:

print("您是{},今年{}岁。".format(name, age))

4. 列表快速去重

原代码:

numbers = [1, 3, 222, 3, 12, 13, 12]
result = []

for i in numbers:
    if not (i in result):
        result.append(i)

print(result)

改进后:

numbers = [1, 3, 222, 3, 12, 13, 12]
result = list(set(numbers))

print(result)

这里运用了集合的概念,集合是不包含重复元素的无序列表。

5. 赋值语句上的条件判断

原代码:

score = int(input("请输入您的分数:"))

if score > 60:
    result = "及格"
else:
    result = "不及格"

print(result)

改进后:

score = int(input("请输入您的分数:"))
result = "及格" if score > 60 else "不及格"
print(result)

6. 快速筛选列表差异元素

原代码:

list_1 = ['John', 'Timmy', 'Ted']
list_2 = ['John', 'Tim', "Ted"]

result = []
for i in list_1:
    if not (i in list_2):
        result.append(i)

print(result)

改进后:

list_1 = ['John', 'Timmy', 'Ted']
list_2 = ['John', 'Tim', "Ted"]

result = list(set(list_1).symmetric_difference(set(list_2)))

print(result)

这里先把list_1转换为集合,再调用集合的差集方法,检查差异元素。

7. 快速连接列表元素为字符串

原代码:

name_list = ['John', 'Timmy', 'Ted', 'Jack']

string = ""
for i in name_list:
    string += i

print(string)

改进后:

name_list = ['John', 'Timmy', 'Ted', 'Jack']
# 以" "连接列表元素
string = " ".join(name_list)
print(string)

这里使用的字符串的join方法实现这个效果。

8. 表达式中的赋值

原代码:

some_text = "lqhnckq"

if len(some_text) > 4:
    print("some_text 的长度为" + str(len(some_text)))

改进后:(Python3.8之后)

some_text = "lqhnckq"

if (length := len(some_text)) > 4:
    print("some_text 的长度为" + str(length))

:=表示把前面的表达式给length进行赋值,再进行判断,赋值后的length可以直接调用。

9. 快速反转字符串

原代码:

some_text = "倒背如流 倒背如流"
new_text = []

for i in some_text:
    new_text.insert(0, i)

print(''.join(new_text))

改进后:

some_text = "倒背如流 倒背如流"
new_text = some_text[::-1]
print(new_text)

10. 快速交换两个变量的值

原代码:

a = 10
b = 20

print(a, b)

temp = a
a = b
b = temp

print(a, b)

改进后:

a = 10
b = 20

print(a, b)

a, b = b, a

print(a, b)

好了,今天的课程就到这里,我是wangzirui32,喜欢的可以点个收藏和关注,我们下次再见!

你可能感兴趣的:(Python,python)