ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python知识点

2022-03-19 11:02:41  阅读:221  来源: 互联网

标签:知识点 .__ 粒子 python self fitness position return


list/slice 切片

  • 切片,前包后不包
l=[1,2,3]
# 从index 1到尾部;结果:2,3
l[1:]
# 从开始到index 2;结果:1,2,3
l[:2]
# 从开始到倒数第1个;结果:1,2
l[:-1]
# 从倒数第2个到末尾;结果:2,3
l[-2:]
# 倒数第1个;结果:3
l[-1]

list/range

range(10)        
# 从0开始到9
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(3,6)
# 从3到5
# [3,4,5]
range(0, 10, 3)  
# 步长为3 
# [0, 3, 6, 9]

list/count 统计

# 返回第一个等于num的数的下标
nums = [40, 36, 89, 2, 2, 100, 7, -20.5, -999]
print( nums.index(2) ) # 输出3

list/index 索引

# 返回第一个等于num的数的下标
nums = [40, 36, 89, 2, 2, 100, 7, -20.5, -999]
print( nums.index(2) ) # 输出3
# 返回第1个p_cumsum_1大于0的索引
list(p_cumsum_1 > 0).index(True) 

list/sort 排序

pickers.sort(key=lambda picker: fitness_F1(picker.get_x()))  

list/深拷贝

alist
blist=alist[:]

dict/{} 空dict

d={}

dict/增删改查

d={'a':1,'b':2,'c':3}
# 增
d['d']=3
# 删/条目
del d['c']
# 删/字典,字典不在了
del d
# 清空,字典还在
d.clear()
# 改
d['b']=22
# 查
d['a']

lambda

# lambda 集合元素做入参: return 表达式(使用入参)
pickers.sort(key=lambda picker: fitness_F1(picker.get_x()))  

生成式

# list 生成式
alist=[x*x for x in range(1,11)]
a_b=[(a,b) for a in alist for b in blist]
# dict生成式
beeid_limit = {worker.get_id(): 0 for worker in workers} 

变量类型 type

type(obj)

面向对象/internal变量 __

class Particle(object):
    """
    粒子
    当前位置
    当前速度
    最佳位置
    当前位置适应度
    """

    def __init__(self, x_max, dim, v_max):
        """
        初始化
        :param x_max: 粒子位置最大值
        :param dim: 粒子维度 一个粒子一个解 解的维度
        :param v_max: 最大速度,速度超过最大速度则设置为最大速度
        """
        # 粒子当前位置;打__表示internal变量,类似java的private,必须通过对外方法访问
        self.__position = np.random.uniform(-x_max, x_max, (1, dim))
        # 粒子当前速度
        self.__velocity = np.random.uniform(-v_max, v_max, (1, dim))
        # 粒子最佳位置
        self.__best_position = np.zeros((1, dim))
        # 粒子当前位置适应度
        self.__fitness = rosenbrock_4(self.__position)

    def set_position(self, position):
        """
        设置粒子当前位置
        :param position: 粒子当前位置
        :return:
        """
        self.__position = position

    def get_position(self):
        """
        获取粒子当前位置
        :return: 粒子当前位置
        """
        return self.__position

    def set_best_position(self, best_position):
        """
        设置粒子最佳位置
        :param best_position: 粒子最佳位置
        :return:
        """
        self.__best_position = best_position

    def get_best_position(self):
        """
        获取粒子最佳位置
        :return: 粒子最佳位置
        """
        return self.__best_position

    def set_velocity(self, velocity):
        """
        设置粒子当前速度
        :param velocity: 粒子当前速度
        :return:
        """
        self.__velocity = velocity

    def get_velocity(self):
        """
        获取粒子当前速度
        :return: 粒子当前速度
        """
        return self.__velocity

    def set_fitness(self, fitness):
        """
        设置粒子当前位置适应度
        :param fitness: 粒子当前位置适应度
        :return:
        """
        self.__fitness = fitness

    def get_fitness(self):
        """
        获取粒子当前位置适应度
        :return: 粒子当前位置适应度
        """
        return self.__fitness

标签:知识点,.__,粒子,python,self,fitness,position,return
来源: https://blog.csdn.net/baidu_35805755/article/details/123044401

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有