# 10个小技巧，让你的 Python 代码更加优雅~

data = (1, 3, -5, 7, 9, -11)
print(data)
sortedData = sorted(data)
print(sortedData)

(1, 3, -5, 7, 9, -11)
[-11, -5, 1, 3, 7, 9]

data = [{
“name”: “Alex”, “age”: 18},
{
“name”: “Band”, “age”: 21},
{
“name”: “Coco”, “age”: 17}]
sorted_data = sorted(data, key=lambda x: x[“age”])
print(sorted_data)

[{‘name’: ‘Coco’, ‘age’: 17}, {‘name’: ‘Alex’, ‘age’: 18}, {‘name’: ‘Band’, ‘age’: 21}]

4. 使用集合 Set 存储唯一值

Python的集合是一种无序的数据类型，并且没有重复元素，还提供了不同集合之间的运算，可以求交集、并集和差集。

data = [1, 3, 3, 5, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 9]
setData = set(data)
print(setData)

{1, 3, 5, 7, 9}

5. 使用生成器以节省内存

dataList = [i for i in range(10000)]
print(sum(dataList))
dataGen = (i for i in range(10000))
print(sum(dataGen))

import sys
dataList = [i for i in range(10000)]
print(sys.getsizeof(dataList), “bytes”)
dataGen = (i for i in range(10000))
print(sys.getsizeof(dataGen), “bytes”)

85176 bytes

112 bytes

6. 在字典中获取元素使用 .get() 并且设置默认值

dataDict = {
“name”: “Tesla”,
“price”: 250000
}

Traceback (most recent call last):
File “mian.py”, line 5, in
KeyError: ‘count’

dataDict = {
“name”: “Tesla”,
“price”: 250000
}

None
0

7. 计数器 collections.Counter

from collections import Counter
data = [1, 3, 3, 5, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 9]
counter = Counter(data)
print(counter)

Counter({9: 5, 7: 4, 5: 3, 3: 2, 1: 1})

Counter 可以统计列表中不同元素的数量，并且按照出现次数降序排列，这比我们自己计算要好得多。

from collections import Counter
data = [1, 3, 3, 5, 5, 5, 7, 7, 7, 7, 9, 9, 9, 9, 9]
counter = Counter(data)
print(counter[7])
print(counter[11])
print(counter.most_common(2))

4
0
[(9, 5), (7, 4)]

8. 使用f-String格式化字符串（适用于Python 3.6+）

f-String在我看来是最佳的格式化字符串方法，我们只需要在字符串前写一个f，然后在字符串内部可以直接使用大括号来嵌入变量或表达式。

data = {
“name”: “Alex”, “age”: 18}
string = f"I’m {
data[‘name’]} and I am {
data[‘age’]} years old."
print(string)

I’m Alex and I am 18 years old.

9. 使用 .join() 拼接字符串

strings = [“Hello”, “World”, “!”]
print(" ".join(strings))
print(“_”.join(strings))

Hello World !
Hello_World_!

10. 使用双星号语法合并字典（适用于Python 3.5+）

info1 = {
“name”: “Alex”, “age”: 18}
info2 = {
“name”: “Alex”, “city”: “Bei Jing”}
info = {
**info1, **info2}
print(info)

|
1天前
|

10 1
|
3天前
|

【译】使用“不安全“的Python加速100倍代码运行速度
【译】使用“不安全“的Python加速100倍代码运行速度
6 0
|
3天前
|

【Python数据魔术】：揭秘类型奥秘，赋能代码创造
【Python数据魔术】：揭秘类型奥秘，赋能代码创造
12 0
|
3天前
|
IDE 开发工具 Python
black--一键格式化Python代码
black--一键格式化Python代码
12 1
|
3天前
|
API 语音技术 Python
【python的魅力】：教你如何用几行代码实现文本语音识别
【python的魅力】：教你如何用几行代码实现文本语音识别
21 2
|
3天前
|
XML 数据格式 Python
Python零基础入门-1 从一行代码开始运行Python程序（续）
Python零基础入门-1 从一行代码开始运行Python程序（续）
10 0
|
3天前
|

Python零基础入门-1 从一行代码开始运行Python程序
Python零基础入门-1 从一行代码开始运行Python程序
5 0
|
4天前
|

28 0
|
4天前
|

18 1
|
4天前
|

22 0