精华内容
下载资源
问答
  • 1.内容简介: 在实际编程过程中,经常有这样的需求:将数据进行平均分配,分别放到几个list中。 本节实现这样一个函数: 平均分配list数据到4个list中。

    1.内容简介:

    在实际编程过程中,经常有这样的需求:将数据进行平均分配,分别放到几个list中。

    本节实现这样一个函数:

    平均分配list数据到4个list中。

    2.代码实现:

    #平均分配list数据到4个list中
    def ave_test():
        #list1 = [[1,2]]
        #list1 = [[1,2],[3,4]]
        #list1 = [[1,2],[3,4],[5,6]]
        #list1 = [[1,2],[3,4],[5,6],[7,8]]
        list1 = [[1,2],[3,4],[5,6],[7,8],[56,1],[57,1],[36,1]]
        print("len:",len(list1))
        #print(len(list1))
        li1=[]
        li2=[]
        li3=[]
        li4=[]
    
        len1=len(list1)
        x = 0
        x1=0
        m=0
        y1=0
    
        if len1==1:
           li1 = list1
        if len1 == 2:
           for i in range(len(list1)):
               if i == 0:
                  li1.append(list1[i])
               else:
                   li2.append(list1[i])
        if len1 == 3:
           for i in range(len(list1)):
               if i == 0:
                  li1.append(list1[i])
               elif i == 1:
                  li2.append(list1[i])
               else:
                   li3.append(list1[i])
        if len1>3:
           l2 = len1//2;
           m = l2
           print("m",m)
           #print(m)
           if m>0:
               x1=m//2
               print("x1:",x1)
               print(x1)
               if (len1-m)>1:
                   t= (len1-m)//2
                   y1=m+t
                   print("y1",y1)
                   print(y1)
           for i in range(len(list1)):
               if i<x1:
                   li1.append(list1[i])
               elif i>=x and i<m:
                  li2.append(list1[i])
               elif i>=m and i<y1:
                  li3.append(list1[i])
               else:
                   li4.append(list1[i])
        if li1:
           print("li1:")
           print(li1)
        if li2:
           print("li2:")
           print(li2)
        if li3:
           print("li3:")
           print(li3)
        if li4:
           print("li4:")
           print(li4)
    #end ave
    
    if __name__ == '__main__':
        ave_test()

    运行结果:

    len: 7

    m 3

    x1: 1

    1

    y1 5

    5

    li1:

    [[1, 2]]

    li2:

    [[3, 4], [5, 6]]

    li3:

    [[7, 8], [56, 1]]

    li4:

    [[57, 1], [36, 1]]


    平均,再平均。

    展开全文
  • python 简单地实现平均分组问题

    千次阅读 2020-02-15 16:18:18
    1组分配狙击枪,2组分配步枪。 那么这时候就出现问题了:显然手持步枪冲锋作战死的更快,所以大家都想去1组。 那么这时候就需要进行公平的分组:抓阄 为了跟本文内容有关系所以 大家暂定为用一个python程序来实现...

    举个栗子。

    现在从我们班选了6个人,分成两组,需要emmm,比如说去打僵尸
    1组分配狙击枪,2组分配步枪。

    那么这时候就出现问题了:显然手持步枪冲锋作战死的更快,所以大家都想去1组。

    那么这时候就需要进行公平的分组:抓阄

    为了跟本文内容有关系所以 大家暂定为用一个python程序来实现分组。nice√

    那么,思路如下:

    首先统计6个人的姓名(或者编号),把它们都放在列表lovelive里面。

    可是μ‘s不是9个人吗

    然后用1个空列表l0和原来的列表lovelive分别存放1组和2组人员的姓名(或编号)。

    用随机数取下标的值以保证100%公平√

    每次取1个值x,放入空列表l0中。

    每次取完值之后就把这个x从lovelive中删掉避免重复。

    取到3个值就停。

    这样l0就能取到3个人,而列表lovelive就剩下另外3个人。

    这样一来,思路就基本确定了。

    import random
    
    str1 = 'kinlrmi.soulrn.christine.christian.saph.laflosia'
    ll = str1.split('.')	#我觉得这样写比直接在列表里挨个添加姓名更快一点
    l0 =[]
    
    while len(ll) != 3:		#当ll中的3个元素被添加到l0中时,就实现平均分组了
        a = len(ll)-1	    #确定x的取值范围上限。因为程序会修改ll中元素的总数
        x=random.randint(0,a)
        l0.append(ll[x])    #将随机得到的元素添加到l0中
        ll.remove(ll[x])    #添加完了之后把ll中这个项删掉。
    print(l0,ll)
    
    • len()得到的值是列表中元素的个数。比如str1=[1,2,3]有三个元素,len(str1)得到的值就是3,减去1得到的就是对应末位元素3的下标。

    以上就是一个比较基础的版本。

    这时候啊,写程序的同学就猫病就犯了,他觉得这样不能体现出他的nb 傻逼 之处

    所以他重新写了一个列表嵌套的(其实反而不那么好用):

    import random
    
    str1 = 'kinlrmi.soulrn.christine.christian.saph.laflosia'
    list1 = str1.split('.')		#把str1变成列表
    list2 = [[],[]]				#赋两个组初始值为空
    
    while len(list2[1]) != 3:	#为了保证每个组都分到三个人
        list2 = [[],[]]			#如果没有实现均分那就重新分,重置分组为空列表
        for i in list1:			#从list1第一个元素开始,顺序放入随机选定的组
            x = random.randint(0,1)	#随机选一个组
            list2[x].append(i)		#把list1中的元素放入选定的组
    else:
        print(list2)
    

    简单理解一下:

    • 第一个程序是固定两个分组,随机挑选人名然后塞进组里面。
    • 第二个组是顺序遍历人名,随机塞到某一个分组里面。

    这样写代码更易于维护,比如两个组变成三个组,比如6个人变成9个人,都是可行的。

    唯一有一个小问题就是,如果用第二个代码来运算的话,连续1000次都没有随机到平均分配的话,程序就会停止运行(用的IDE是vs code)。

    我觉得应该没有人这么脸黑吧
    在这里插入图片描述

    展开全文
  • Fair Distributor 一个用于公平分配任务的python模块
  • 均匀分配算法(Python2)

    千次阅读 2019-01-15 14:30:04
    1.给出一个数字和一个数字的集合,把这个数字依次分成集合中的数字 def pureSeparate(number, numberList): resultLists = [] for i in numberList: resultList = [] b = number / i for j in range(0, i): ...

    题目1: 给出一个数字和一个数字的集合,把这个数字依次分成集合中的数字

    def pureSeparate(number, numberList):
        resultLists = []
        for i in numberList:
            resultList = []
            b = number / i
            for j in range(0, i):
                resultList.append(b)
            resultLists.append(resultList)
        return resultLists
    
    
    print pureSeparate(100, [2, 3, 4, 5])
    [[50, 50], [33, 33, 33], [25, 25, 25, 25], [20, 20, 20, 20, 20]]

    题目2: 已知一个数字和一个二维数组,该二维数组有相同的元素,将该数字以每个相同元素的个数评分,并依次匹配到该数组后,要求得出该形式:[[1, 50], [1, 50], [2, 33], [2, 33], [2, 33], [3, 25], [3, 25], [3, 25], [3, 25]]

    def insertionNumber(number, originalList):
        list.sort(originalList)
        countList = []
        m = 0
        n = originalList.count(originalList[0])
        while n <= len(originalList):
            count = 0
            for i in range(m, n):
                count = originalList.count(originalList[i])
                break
            countList.append(count)
            n += count
            m += count
    
        s = 0
        l = 0
        for i in countList:
            l += i
            b = number / i
            for j in range(s, l):
                originalList[j].append(b)
            s = l
        return originalList
    
    
    print insertionNumber(100, [['a'], ['a'], [2], [1], ['a'], [1], [2], [1], ['a']])
    [[1, 33], [1, 33], [1, 33], [2, 50], [2, 50], ['a', 25], ['a', 25], ['a', 25], ['a', 25]]

    展开全文
  • import random offices = [[], [], []] teachers = ['张老师', '李老师', '赵老师', '高老师', '刘老师', '周老师', '王老师', '吴老师'] for teacher in teachers: office_num = random.randint(0, 2) ...
    import random
    
    offices = [[], [], []]
    teachers = ['张老师', '李老师', '赵老师', '高老师',
             '刘老师', '周老师', '王老师', '吴老师']
    
    for teacher in teachers:
        office_num = random.randint(0, 2)
        offices[office_num].append(teacher)
    
    num = 1
    for office in offices:
        print(f'{num}#办公室,人数:{len(office)}')
        num += 1
        print(office)
        # for t in office:
        #     print(t, end=' ')
        print()
    # offices =[[李老师 高老师 刘老师],[张老师 吴老师],[赵老师 周老师 王老师 ]]
    
    
    展开全文
  • Python将9位教师随机且平均分配到3个教室中 先引入random库,然后定义room嵌套列表和教师列表,并设置变量。 random.shuffle(列表)的作用是将原列表的顺序随机打乱。 运用for循环遍历打乱后的教师列表,n为room...
  • python编写一个类似抢红包的程序,如何实现每个人随机平均分配
  • Python分配分配包含两个目录:PyBank和PyPoll。 PyBank会在Excel CSV文件中分析公司的财务记录。 CSV文件名为budget_data.csv。 Main.py是运行以进行分析的主要脚本。 PyBank目录中的Main.py以字典形式读取CSV...
  • Python机器学习实践

    千次阅读 2019-10-15 21:14:08
    前面几篇博文已经整理了Python做数据分析和建模以及机器学习基础知识。 这篇博文主要分享Python做数据分析和建模的实践案例应用。 分为两部分: 1、Python机器学习实践案例的算法总结。 见博文下方的算法总结...
  • 今天小编就为大家分享一篇python随机数分布random均匀分布实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • Python综合应用——宿舍管理系统,供大家参考,具体内容如下/p> 通过对 python 的函数,变量的应用,编写简单的关系系统 实现功能: 1.新增学生 2.显示全部学生信息 3.搜索学生 可按照学生姓名,班级,学号,宿舍号...
  • 使用python matlab 调整坐标轴刻度

    千次阅读 2017-06-25 21:54:19
    data=[1,2,3]#元数据 plt.plot(data)#输出图像 plt.xlabel('Time') #横轴标签 plt.ylabel('Active power')#纵轴标签 ...ax=plt.gca()#获取当前图像 ...for tick in ax.xaxis.get_major_ticks():#设置横轴刻度字体...
  • 老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在QTableWidget表格部件中,如果需要实现表格中各列要占满部件中的可用空间,同时实现各列平分所有空间,有两种方法来实现。 方法一...
  • 股票分割器 **现在具有易于使用的简单GUI Stocksplitter是一个脚本,旨在在给定以下条件时购买多支股票时发现总价值几乎均分的情况: 投资金额 他们想投资的股票行情 某些后来的功能可能包括: ...
  • python练习-学生班级分配问题

    千次阅读 2020-04-22 21:58:50
    题目要求:四个班级,八个学生,随机将八个学生平均分配到四个班级中,也就是每一个班级有且只有两个学生。 在这里小编写了两种实现方法,如有错误,请大家多多指点,在此谢过。如果还有不同的实现方法,不如给小编...
  • Python模拟财富分配实验

    千次阅读 2018-06-07 18:46:46
    在知乎上看到了一个模拟财富分配的实验,通过Python进行模拟实验,尽管与知乎上面的结论不太一致,但还是写出来,毕竟是实验的真实数据。 规则 在一个封闭的房间里,有一百人,每个人有100元,每个人拿出一元钱...
  • Riskfolio-Lib是一个库,用于使用秘鲁制造的Python进行定量战略资产分配或投资组合优化 :Peru: 。它的目的是帮助学生,学者和从业人员轻松地基于数学上复杂的模型建立投资组合。它基于构建,并与数据结构紧密集成。 ...
  • python list 平均 分割 等分

    万次阅读 2014-04-22 20:44:19
    ####功能:将list对象N等分 def div_list(ls,n): if not isinstance(ls,list) or not isinstance(n,int): return [] ls_len = len(ls) if n return [] if n > ls_len: return [] elif n == ls_l
  • #连续平均法交通分配的连续平均法(MSA)的Python实现。
  • 指数平滑法正是考虑了这一点,并将其权值按指数递减的规律进行分配,越接近当前的数据,权重越大;反之,远离当前的数据,其权重越小。指数平滑法按照平滑的次数,一般可分为一次指数平滑法、二次指数平滑法和三次...
  • 桶排序(即bin排序)是一种排序算法,其工作原理是将数组的元素分配到多个桶中。 然后,使用不同的排序算法或通过递归应用存储桶排序算法分别对每个存储桶进行排序。 特性 最差情况下的性能O(n 2 ) 最佳情况下...
  • N名学生拿起K个苹果,并在彼此之间平均分配。 其余(不可分割)部分保留在购物篮中。 每个学生将获得多少个苹果? 篮子里还剩下多少个苹果? 该程序将读取数字N和K。它应该为上述问题打印两个答案。 给定整数N-自...
  • python 入门题库————python语句和基础数理

    万次阅读 多人点赞 2018-10-25 15:59:07
    python 入门题库python 题库Python使用符号_______表示注释Python不支持的数据类型有查看python版本的命令是在Python中,print(type(16/4))的结果是什么类型的在Python3中,执行下列语句后的显示结果是执行下列语句...
  • 模拟微信红包金额的分配 from decimal import Decimal #decimal意思为十进制 import random #提供了随机方法 RS = input(‘请输入人数:’) RMB = input(‘请输入金额:’) RMB_list = [] RMB = float(RMB) RS = ...
  • Java平均分配算法

    千次阅读 2019-08-09 15:07:01
    1万个设备的IMEI固定且尽量平均分配到四个组。 算法 算法来自文章【数据结构与算法】一致性Hash算法及Java实践 public static int FnvHash(String key) { final int p = 16777619; long hash = (int) 2166136261...
  • 牌组平均分配,每位玩家接收26张纸牌,一次发一张,正面朝下。 任何人都可以先交易。 每个玩家将一叠纸牌正面朝下放置在他前面。 表演: 每个玩家同时发一张牌,而拥有较高卡的玩家拿走两张牌,将它们正面朝下放在...
  • python语法基础汇总

    千次阅读 多人点赞 2019-11-05 10:29:42
    文章目录python语法基础一、简介及运算符什么是计算机语言编译型语言和解释型语言Python的介绍Python开发环境搭建Python的交互界面Python和Sublime的整合几个概念基本语法字面量和变量变量和标识符数据类型类型检查...
  • python聚类算法kmeans from sklearn.cluster import KMeans estimator =KMeans(n_clusters=3) estimator.fit(data) label_pred = estimator.labels_#聚类标签 centroids = estimator.cluster_centers_#聚类中心...
  • 2017/3/12 27.7 tracemalloc 跟踪内存分配 Python 3.6.1rc1文档 27.7tracemalloc跟踪内存分配 新版本3.4 源代码 Lib / tracemalloc.py tracemalloc模块是跟踪由Python分配的内存块的调试工具它提供以下信息 跟踪分配...
  • 使用python实现sma 什么是移动平均线(MAs)? (What are Moving Averages(MAs) ?) A moving average, also called as rolling average or running average is a used to analyze the time-series data by calculating...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 29,414
精华内容 11,765
关键字:

python平均分配

python 订阅