python - 将随机列表中的项目 append 到新列表

标签 python list random append shuffle

<分区>

对于文本分类项目(年龄),我正在制作我的数据的一个子集。我制作了 3 个文件名列表,按年龄排序。我想打乱这些列表,然后将每个打乱后的列表中的 5000 个文件名 append 到一个新列表中。结果应该是一个包含 15000 个文件的数据子集(5000 个 10 秒、5000 个 20 秒、5000 个 30 秒)。在下面你可以看到我到目前为止所写的内容。但我知道 random.shuffle返回 none 并且 none 类型的对象不可迭代。我怎么解决这个问题?

def seed():
   return 0.47231099848

teens = [list of files]
tweens = [list of files]
thirthies = [list of files]
data = []
for categorie in random.shuffle([teens, tweens, thirthies],seed):
    data.append(teens[:5000])
    data.append(tweens[:5000])
    data.append(thirthies[:5000])

最佳答案

第一个问题是你正在打乱由 3 个项目 [teens, tweens, thirthies] 组成的列表(甚至每个项目都是一个列表)而不是打乱每个子列表

其次,您可以使用 random.sample 而不是 random.shuffle

for categ in [teens, tweens, thirthies]:
    data.append(random.sample(categ,5000])

或者正如@JonClements 在评论中建议的那样,您可以使用列表理解

categories = [teens, tweens, thirthies]
data = [e for categ in categories for e in random.sample(categ, 5000)]

关于python - 将随机列表中的项目 append 到新列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43570559/

相关文章:

python - 存储数百万数组的有效方法,并执行 IN 检查

python - 为什么带有 charset=utf8 的 SQLAlchemy create_engine 返回 python 类型 <str> 而不是类型 <unicode>?

python - Pyspark - 如何将 '4 hours' 多个窗口分组聚合

java - 如何在 List<Serializable> 内容 JaxB 中添加元素?

python - 如何使用函数式编程迭代并找到列表中五个连续数字的最大乘积?

python - 如何从一个大文件中随机删除多行?

c# - C#中唯一的4位随机数

Python 和 fibonnaci [列表] 生成器

java - 列为 O(log(n))

c# - 如何编写一个返回 6 个字符长度的唯一字符串的方法?