Python随机将值从一个列表委托给另一个列表

时间:2015-10-15 13:05:28

标签: python

我有两个列表

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

  b_list = ['1', '2', '3']

将列表值从b_list随机委派给新列表中的大元组的最佳方法是什么:

   c_list = [('a','1'), ('b','3'), ('c','1')]

4 个答案:

答案 0 :(得分:5)

$(document).ready(function () {
    $('[class^=field-validation]').each(function () {
        var id = "val" + $(this).attr("data-valmsg-for");
        $(this).attr("id", id);
    });
});

<强>输出:

import random
a_list = ['a', 'b', 'c']
b_list = ['1', '2', '3']
print [(a,random.choice(b_list)) for a in a_list]

答案 1 :(得分:4)

对列表进行混洗,然后zip将完成工作。

import random

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

b_list = ['1', '2', '3']

random.shuffle(a_list)
random.shuffle(b_list)

c_list = zip(a_list, b_list)

或者,如果您不想要一对一的映射,那么您也可以使用:

import random

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

b_list = ['1', '2', '3']

c_list = [(i, random.choice(b_list)) for i in a_list]

答案 2 :(得分:1)

在输出中,我可以看到重复的值。使用下面。

不重复:

PREREQUISITEstring

重复:

random.shuffle(b_list)
print zip(a_list, b_list)

答案 3 :(得分:1)

import random
from functools import partial

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

b_list = ['1', '2', '3']

r= partial(random.choice,b_list)

list(zip(a_list,[r(),r(),r()]))

[('a', '1'), ('b', '2'), ('c', '2')]