今天的这些小技巧,对于初学者来说,还是非常香的~
字典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、合并两个或多个字典
假设我们有两个或多个字典,并且我们希望将它们全部合并为一个具有唯一键的字典。
兄弟们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。 那么对于这些大兄弟们,我准备了大量的免费视频教程,PDF电子书籍,以及视频源的源代码! 还会有大佬解答! 【都在这个群里了,点我进入】 欢迎加入,一起讨论 一起学习!
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 模块来帮助我们有效地执行该任务。
import csv
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]] 。
def merge(*args, missing_val = None):
max_length = max([len(lst) for lst in args])
outList = []
for i in range(max_length):
outList.append([args[k][i] if i = 0:
print(address)
# 方法二
for address in addresses:
if street in address:
print(address)
结果: 如果觉得有用的小伙伴,记得点赞+留言+转发,么么哒~