gpt4 book ai didi

python - 打乱两个相关列表的更好方法

转载 作者:IT老高 更新时间:2023-10-28 22:06:24 25 4
gpt4 key购买 nike

有没有更好的方法来随机打乱两个相关列表而不破坏它们在另一个列表中的对应关系?我在 numpy.arrayc# 中找到了相关问题,但并不完全相同。

作为第一次尝试,一个简单的 zip 技巧就可以了:

import random
a = [[1, 2], [3, 4], [5, 6], [7, 8], [9, 10]]
b = [2, 4, 6, 8, 10]
c = zip(a, b)
random.shuffle(c)
a = [e[0] for e in c]
b = [e[1] for e in c]
print a
print b

它会得到输出:

[[1, 2], [7, 8], [3, 4], [5, 6], [9, 10]]
[2, 8, 4, 6, 10]

只是觉得有点尴尬。它还需要一个额外的列表。

最佳答案

鉴于问题中展示的关系,我将假设列表的长度相同,并且 list1[i] 对应于 list2[i]任何索引 i。有了这个假设,改组列表就像改组索引一样简单:

 from random import shuffle
# Given list1 and list2

list1_shuf = []
list2_shuf = []
index_shuf = list(range(len(list1)))
shuffle(index_shuf)
for i in index_shuf:
list1_shuf.append(list1[i])
list2_shuf.append(list2[i])

关于python - 打乱两个相关列表的更好方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11765061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com