Python 2.6 - 将一个列表均分为两个

时间:2018-01-12 15:34:42

标签: python

我的目标很简单

我有一个列表,例如:

a = ['a', 'b', 'c', 'd']

我希望将其随机均匀地分成两个不同的列表,例如:

b = ['c', 'a']
c = ['d', 'b']

提前致谢。

3 个答案:

答案 0 :(得分:1)

您可以使用random.suffle重新排序列表并列出切片以在shuffle之后捕获所需的段:

import random
a = ['a', 'b', 'c', 'd']
random.shuffle(a)
b = a[:2]
c = a[2:]

输出:

['b', 'd']
['c', 'a']

答案 1 :(得分:0)

你可以试试这样的事情

a = ['a', 'b', 'c', 'd',...]
import random
random.shuffle(a) # shuffles the list randomly, as the names imply. 

感谢@ Ajax1234这个部分,然后

a1 = a[0::2] # you'll get the even-index elements 0,2,4, ...
a2 = a[1::2] # the odd-index elements 1,3,5,...

如果列表的长度不是偶数,则其中一个列表会更长。

答案 2 :(得分:0)

您可以使用参数2尝试random.sample:

import random
a = ['a', 'b', 'c', 'd']

final=[]
for i in range(0,2):
    var=random.sample(a,2)
    if  var not in final:
        final.append(var)

print(final)