创建元素唯一的列表的列表

在产生0/1随机序列时,需要产生彼此唯一的很多帧序列,以下是探索的一些方法:

1 产生彼此唯一的数字序列

1.1 numpy

使用 numpy.random.choice(a, size=None, replace=True, p=None)函数,该函数可以在一个指定的序列中随机挑选出彼此唯一的子数组

1.2 random

random库也是可以实现上述一样的功能,参考文章
random.sample(population, k)
但上述方法彼此唯一的元素只能是数字,我需要的序列。

2 产生彼此唯一的序列的序列

可以随机产生很多帧序列,然后使用某种挑选函数来实现序列彼此的唯一。
使用python 中的set函数

In [1]:list(set([1,2,3,4,1,2]))
Out[1]:[1,2,3,4]
In [2]:list(set([[1,2],[1,2],[2,3],[3,4]]))
TypeError: unhashable type: 'list'
In [3]:list(set([(1,2),(1,2),(2,3),(3,4)]))
Out[3]: [(1, 2), (3, 4), (2, 3)]

上述实验表明,set函数可以取唯一,但其列表中元素必须是“可哈希的“,即是不可变类型的,必须将序列转化为tuple才可以进行set操作,参考文章
但上述操作会造成输出不是按原来的顺序,关于顺序问题可以参考上述文章,我的工作目标是产生彼此唯一的多帧序列即可。

猜你喜欢

转载自blog.csdn.net/sangohan77/article/details/79087751