Python将值从一个列表随机委托给另一个列表
我有两张单子Python将值从一个列表随机委托给另一个列表,python,Python,我有两张单子 a_list = ['a', 'b', 'c'] b_list = ['1', '2', '3'] 将列表值从b_列表随机委托给新列表中的大元组的最佳方法是什么: c_list = [('a','1'), ('b','3'), ('c','1')] 洗牌列表和zip它们将完成您的工作 import random a_list = ['a', 'b', 'c'] b_list = ['1', '2', '3'] random.shuffle(a_list)
a_list = ['a', 'b', 'c']
b_list = ['1', '2', '3']
将列表值从b_列表随机委托给新列表中的大元组的最佳方法是什么:
c_list = [('a','1'), ('b','3'), ('c','1')]
洗牌列表和
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]
正如在您的输出中一样,我可以看到重复的值。使用下面的 不重复:
random.shuffle(b_list)
print zip(a_list, b_list)
print [ (i,random.choice(b_list)) for i in a_list ]
重复:
random.shuffle(b_list)
print zip(a_list, b_list)
print [ (i,random.choice(b_list)) for i in a_list ]
输出:
[('a', '3'), ('b', '1'), ('c', '3')]
我想这个问题会对你有所帮助:你没有使用b_列表中的
2
,这是预期的还是你想使用所有的值?听起来像是家庭作业,你有没有尝试过任何方法来解决这个问题?@Andy这是预期的,因为我希望它随机将b_列表中的值委托给a_列表。c_列表很可能是a1、b1、c1或a2、b2、c3等。