通过属性访问字典的值

鸢尾花数据集:

1)实现
在这里插入图片描述

# -*- coding:utf-8 -*-
"""
  Author:   XXXXXX
  Purpose: 给字典中增加点属性,用于通过点来获取字典中的值
  Created: 2020/10/12
"""
import pandas as pd

class Point_Attribute(dict):
    
    #给字典中加入点属性
    def __init__(self, **kwargs):
        super().__init__(kwargs)

    def __setattr__(self, key, value):
        #设置属性
        self[key] = value

    def __getattr__(self, key):  #当出现iris.datas时,调用getattr方法
        #获取属性
        self[key]
        return self[key]        

def data_preprocess(data):
    iris.drop(axis=0, columns="Id", inplace=True)   #取除多余行
    iris.drop_duplicates(inplace=True)              #取除重复的行
    label_type = {}
    species = set(iris["Species"])   #
    for i,j in enumerate(species):  #{'Iris-versicolor': 0, 'Iris-virginica': 1, 'Iris-setosa': 2}
        label_type[j]=i
    iris["Species"] = iris["Species"].map(label_type) #数字代替花的类别
    return iris  

if __name__ == "__main__":
    iris = pd.read_csv("Iris.csv")
    data_preprocess(iris)
    iris = Point_Attribute(datas=iris.iloc[::,:4].values,target = iris.iloc[::,4:].values)
    #datas=iris.iloc[::,:4].values,target = iris.iloc[::,4:].values
    print(iris.datas)
    print(iris.target)

2)通过easydict模块,通过属性访问字典的值

from easydict import EasyDict as edict
a = edict({"a":1,"b":2})
print(a.a)  # 1
print(b.b)  # 2
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值