Python 语言¶
约 575 个字 87 行代码 预计阅读时间 3 分钟
Info
此处用于记录我自己发现的python中的(我之前不知道的)操作
1¶
在字典中直接查询、取出的是 key 的值
1
in
语句可以判断 某个 key 是否在某个字典中,如
# 从附录2的Excel表格中读取数据
datas2 = get_data("2.xlsx", "Sheet1")
# 创建一个字典来存储销量数据,字典的键是产品编号,值是包含销售季度数据的嵌套字典
xiaoliang = {}
# 遍历附录2中的数据
for data in datas2:
# 如果产品编号不在字典中,添加一个新的键值对
if data[2] not in xiaoliang:
# 销售数据字典的键是年份和季度的组合,初始值为0
xiaoliang[data[2]] = {y * 100 + s: 0 for y in range(2020, 2024) for s in range(1, 5)}
# 更新销售数据字典,根据销售日期获取季度并将销售数量累加到相应的季度
xiaoliang[data[2]][get_season(data[0])] += data[3]
其中
能判断字典xiaoliang是否已经存在为 data[2]
的键(没有可以进行初始化等操作)
2
for
语句(循环以及列表推导式)直接用于字典取出的是 key,
for xl in xiaoliang:
new_xl = [round(xiaoliang[xl][x], 3) for x in xiaoliang[xl]]
xiaoliang[xl] = new_xl
如果需要取出 value 则可以使用字典的 .item()
(取出key和value) 或 .values()
(只取出value) 方法:
# 定义一个函数,将dict转换成list
def dict_to_list(dict1):
list1 = []
for key, value in dict1.items():
list1.append([key, value])
return list1
3¶
字典的 .values()
方法,返回的是一个 dict_values 类型,如果需要的是列表,则需要类型转换:
4¶
字典不能切片
5¶
Note
json文件读取速度很快,我认为很适合用于处理数据
读取和写入json文件的函数
import json
# 定义一个函数,将dict存到指定的json文件中
def write_data(file_name, data):
# 打开json文件
with open(file_name, "w", encoding="utf-8") as f:
# 将数据写入json文件中
json.dump(data, f, ensure_ascii=False, indent=4)
# 定义一个函数,从json文件中读取数据
def read_data(file_name):
# 打开json文件
with open(file_name, "r", encoding="utf-8") as f:
# 读取json文件中的数据
data = json.load(f)
# 返回数据
return data
- 写入函数如果目标文件不存在,会自动新建一个对应的文件
- 写入函数需要传入一个字典,(如果想存储列表类型的数据,可以在列表外套一个只含一个键的字典)
6¶
对小数四舍五入 使用 round()
函数,如
# 将结果数据的小数位数保留三位
for _, value in data_res.items():
for i in range(12):
value[i] = round(value[i], 3)
第一个参数时要舍入的值,第二个参数是要保留的小数位数
7¶
datetime类型
-
datetime可以直接获取 年、月、日 等的数据
-
datetime可以类型转换成str,会转成形如
"2023-09-11 18:40:22.834683"
的字符串
8¶
将列表写入csv文件的函数
# 定义一个函数,将list存入csv文件
def write_data_to_csv(file_name, data_list):
# 打开csv文件
with open(file_name, "w", encoding="gbk", newline="") as f:
# 创建一个csv写入器
writer = csv.writer(f)
# 将数据写入csv文件中
writer.writerows(data_list)
encoding
参数是编码格式,选择 "gbk"
excel能正常打开,选择 "utf-8"
excel好像会显示乱码
9¶
命令行中的python的退出:
- Linux系统下(可能MacOS系统下也是),是 Ctrl+D
- Windows系统下,则是 Ctrl+D 然后 Enter
10¶
偶然从
发现一个字典的 .pop()
方法的用法,
If key is not found, default is returned if given, otherwise KeyError is raised
第二个参数的位置是默认返回值,即如果没有某个key对应的值,那么就返回这个默认的值,否则会引起 KeyError
11¶
如果要在函数内部使用全局变量,使用 global
关键字,跟 nonlocal
类似
Created: 2023-09-11