Python 从样本中创建3个相互排斥且共同详尽的列表

Python 从样本中创建3个相互排斥且共同详尽的列表,python,list,set,union,Python,List,Set,Union,假设我有一个YYYYMMDD格式的365个日期的主数组。为了这个例子,我想创建3个不同的列表,它们是唯一的,但也会使用全部365个日期 就整体而言,让我们以2017年为例。我想从365天中创建3个列表,这些列表相互排斥,共同详尽无遗。换句话说,array1中的日期既不在array2中也不在array3中,array2中的日期也不在array3中。Array1的长度为300,array2的长度为64,array3的长度仅为1 我知道这可以通过列表和集合来实现,也可以通过包含“不在”来实现,但我一直

假设我有一个YYYYMMDD格式的365个日期的主数组。为了这个例子,我想创建3个不同的列表,它们是唯一的,但也会使用全部365个日期

就整体而言,让我们以2017年为例。我想从365天中创建3个列表,这些列表相互排斥,共同详尽无遗。换句话说,array1中的日期既不在array2中也不在array3中,array2中的日期也不在array3中。Array1的长度为300,array2的长度为64,array3的长度仅为1


我知道这可以通过列表和集合来实现,也可以通过包含“不在”来实现,但我一直在兜圈子,什么都不起作用。对于这样的问题,最好的解决方案是什么?

也许可以使用随机排列将数组随机化,然后拆分生成的随机排列列表

shuffle(arr)
arr1 = arr[0:300]
arr2 = arr[300:364]
arr3 = arr[364:365]

也许可以使用shuffle将数组随机化,然后分割得到的无序列表

shuffle(arr)
arr1 = arr[0:300]
arr2 = arr[300:364]
arr3 = arr[364:365]

我会用pandas轻松创建日期,转换成numpy数组,然后使用
numpy.random.shuffle

import pandas as pd
import numpy as np
list_of_dates = pd.date_range('2019-01-01', periods=365, freq='D') #Creates the list with all the dates for the year 2019.
dates = np.array(list_of_dates) #Transform it into a np.array to apply random.shuffle() later
np.random.shuffle(dates) #randomize the order of the list
list_1 = dates[0:300] #create 1st list
list_2 = dates[301:364] #create 2nd list
list_3 = dates[364:-1] #create 3rd list
测试:

输出:

['2019-01-19T00:00:00.000000000' '2019-04-04T00:00:00.000000000'
 '2019-03-10T00:00:00.000000000']

我会用pandas轻松创建日期,转换成numpy数组,然后使用
numpy.random.shuffle

import pandas as pd
import numpy as np
list_of_dates = pd.date_range('2019-01-01', periods=365, freq='D') #Creates the list with all the dates for the year 2019.
dates = np.array(list_of_dates) #Transform it into a np.array to apply random.shuffle() later
np.random.shuffle(dates) #randomize the order of the list
list_1 = dates[0:300] #create 1st list
list_2 = dates[301:364] #create 2nd list
list_3 = dates[364:-1] #create 3rd list
测试:

输出:

['2019-01-19T00:00:00.000000000' '2019-04-04T00:00:00.000000000'
 '2019-03-10T00:00:00.000000000']

是否还有其他限制?1个数据数组中的3个唯一列表基本上可以概括为。请您添加一些代码示例,以及一些测试数据,哪些代码不起作用,以及预期的结果。是否还有其他限制?1个数据数组中的3个唯一列表是这基本上可以概括为什么。请您添加一些您最终得到的代码样本,以及一些测试数据、哪些不起作用以及预期的结果,好吗