今天的这些小技巧,对于初学者来说,还是非常香的~
字典
2个和字典相关的操作
1、反转字典
一个非常常见的字典任务是如果我们有一个字典并且想要反转它的键和值。因此,键将成为值,而值将成为键。
当我们这样做时,我们需要确保我没有重复的键,值可以重复,但键不能,并确保所有新键都是可散列的。
my_dict = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
# 方法一
my_inverted_dict_1 = dict(map(reversed, my_dict.items()))
# 方法二
from collections import defaultdict
my_inverted_dict_2 = defaultdict(list)
{my_inverted_dict_2[v].append(k) for k, v in my_dict.items()}
print(my_inverted_dict_1)
print(my_inverted_dict_2)
结果如下:
2、合并两个或多个字典
假设我们有两个或多个字典,并且我们希望将它们全部合并为一个具有唯一键的字典。
from collections import defaultdict
def merge_dicts(*dicts):
mdict = defaultdict(list)
for dict in dicts:
for key in dict:
res[key].append(d[key])
return dict(mdict)
输入/输出操作
2个与输入、输出操作相关的操作
3、解析电子表格
另一种非常常见的文件交互是从电子表格中解析数据,幸运的是,我们有 CSV 模块来帮助我们有效地执行该任务。
_mapping_list = []
with open("/path/to/data.csv") as my_data:
csv_reader = csv.reader(my_data, delimiter=",")
line_count = 0
for line in csv_reader:
if line_count == 0:
header = line
else:
row_dict = {key: value for key, value in zip(header, line)}
csv_mapping_list.append(row_dict)
line_count += 1
4、检查文件是否存在
在数据科学和许多其他应用程序中,我们经常需要从文件中读取数据或向其中写入数据。 要做到这一点的话,我们需要检查文件是否存在。 因此,我们的代码不会因错误而终止。
# 方法一
import os
exists = os.path.isfile('/path/to/file')
# 方法二
from pathlib import Path
config = Path('/path/to/file')
if config.is_file():
pass
列表
先来说说6个和列表相关的操作
5、将列表映射到字典
如果给定一个列表并将其映射到字典中。也就是说,我想将我的列表转换为带有数字键的字典,应该怎么做呢?
mylist = ['blue', 'orange', 'green']
#Map the list into a dict using the map, zip and dict functions
mapped_dict = dict(zip(itr, map(fn, itr)))
6、对字符串列表进行排序
我们经常面临包含字符串的列表,我们需要按字母顺序、长度或我们想要或我们的应用程序需要的任何其他因素对这些列表进行排序。
现在,我应该提到这些是对字符串列表进行排序的直接方法,但有时您可能需要实现排序算法来解决该问题。
my_list = ["blue", "red", "green"]
# 方法一
my_list.sort()
my_list = sorted(my_list, key=len)
# 方法二
import locale
from functools import cmp_to_key
my_list = sorted(my_list, key=cmp_to_key(locale.strcoll))
结果:
7、把多个列表合并成一个列表
当我们有两个或更多列表时,我们希望将它们全部收集到一个大列表中,其中较小列表的所有第一项构成较大列表中的第一个列表。
例如,如果我有 4 个列表 [1,2,3]、[‘a’,‘b’,‘c’]、[‘h’,‘e’,‘y’], 和[4,5,6],我们想为这四个列表创建一个新列表;它将是 [[1,‘a’,‘h’,4], [2,‘b’,‘e’,5], [3,‘c’,‘y’,6]] 。
结果:
8、对字典列表进行排序
下一组日常列表任务是排序任务。根据列表中包含的项目的数据类型,我们将采用稍微不同的方式对它们进行排序。让我们首先从对字典列表进行排序开始。
dicts_lists = [
{
"Name": "James",
"Age": 20,
},
{
"Name": "May",
"Age": 14,
},
{
"Name": "Katy",
"Age": 23,
}
]
# 方法一
dicts_lists.sort(key=lambda item: item.get("Age"))
# 方法二
from operator import itemgetter
f = itemgetter('Name')
dicts_lists.sort(key=f)
结果:
9、根据另一个列表对列表进行排序
有时,我们可能想要/需要使用一个列表来对另一个列表进行排序。因此,我们将有一个数字列表(索引)和一个我想使用这些索引进行排序的列表。
12345 | a ``= [``'blue'``, ``'green'``, ``'orange'``, ``'purple'``, ``'yellow'``]``b ``= [``3``, ``2``, ``5``, ``4``, ``1``] sortedList ``= [val ``for (_, val) ``in sorted``(``zip``(b, a), key``=``lambda x: x[``0``])]``print``(sortedList) |
---|
结果:
10、把两个列表合并到一个字典
假设我们在Python中有两个列表,我们希望将它们合并为字典形式,其中一个列表的项目作为字典的键,另一个作为值。这是在用 Python 编写代码时经常遇到的一个非常常见的问题。
但是为了解决这个问题,我们需要考虑几个限制,比如两个列表的大小,两个列表中项目的类型,以及其中是否有重复的项目,尤其是我们将使用的项目 作为钥匙。我们可以通过使用像 zip 这样的内置函数来克服这个问题。
keys_list = ['A', 'B', 'C']
values_list = ['blue', 'red', 'bold']
# 有 3 种方法可以将这两个列表转换为字典
# 1.使用Python zip、dict函数
dict_method_1 = dict(zip(keys_list, values_list))
# 2. 使用带有字典推导式的 zip 函数
dict_method_2 = {key:value for key, value in zip(keys_list, values_list)}
# 3.循环使用zip函数
items_tuples = zip(keys_list, values_list)
dict_method_3 = {}
for key, value in items_tuples:
if key in dict_method_3:
pass
else:
dict_method_3[key] = value
print(dict_method_1)
print(dict_method_2)
print(dict_method_3)
结果:
字符串
3个和字符串相关的操作;
11、使用 f 字符串
格式化字符串可能是您几乎每天都需要完成的第一项任务。
在 Python 中有多种方法可以格式化字符串,我最喜欢的是使用 f 字符串。
str_val = 'books'
num_val = 15
print(f'{num_val} {str_val}')
print(f'{num_val % 2 = }')
print(f'{str_val!r}')
price_val = 5.18362
print(f'{price_val:.2f}')
from datetime import datetime;
date_val = datetime.utcnow()
print(f'{date_val=:%Y-%m-%d}')
结果:
12、 以字节为单位获取字符串的大小
有时,尤其是在构建内存关键应用程序时,我们需要知道我们的字符串使用了多少内存。
幸运的是,这可以通过一行代码快速完成。
str1 = "hello"
str2 = "😀"
def str_size(s):
return len(s.encode('utf-8'))
print(str_size(str1))
print(str_size(str2))
结果:
13、检查子串
我之前需要多次执行的一项非常常见的任务是,检查字符串是否在字符串列表中。
结果:
这里给大家分享一份Python全套学习资料,包括学习路线、软件、源码、视频、面试题等等,都是我自己学习时整理的,希望可以对正在学习或者想要学习Python的朋友有帮助!
CSDN大礼包:全网最全《全套Python学习资料》免费分享🎁
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
1️⃣零基础入门
① 学习路线
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
② 路线对应学习视频
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
③练习题
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
因篇幅有限,仅展示部分资料
2️⃣国内外Python书籍、文档
① 文档和书籍资料
3️⃣Python工具包+项目源码合集
①Python工具包
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
②Python实战案例
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
③Python小游戏源码
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
4️⃣Python面试题
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
5️⃣Python兼职渠道
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要 📦《全套Python学习资料》的,可以扫描下方二维码免费领取 🆓
😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓