【问题标题】:python iterating through multiple lists and returning a random.choicepython遍历多个列表并返回一个random.choice
【发布时间】:2013-01-30 15:58:52
【问题描述】:
import random
def iterate_thru_list():
   i = 0  
   L1 = [1,2,3,4,5,6,7,8,9]
   L2=['a','b','c','d','e','f','g','h','i']
   L3= ['A','B','C','D','E','F','G','H','I']
   random.shuffle(L1)
   random.shuffle(L2)
   random.shuffle(L3)


   print ("List:")
   while i <= 5:
      for x, y, z in [(x,y,z) for x in L1 for y in L2 for z in L3]:
         print(x,y,z)
   i = i + 1

我想遍历单独的列表,从每个列表中返回一个随机选择的数字或字母,并在这种情况下返回三个唯一字母或数字的“集合”。注意 while 循环不起作用 - 这个循环直到它返回所有组合,我也不明白。我可以使用 random.choice(L1 or L2 or L3) 返回 x,y 和 z 吗?是否有另一种更简单的方法可以从多个列表中返回随机选择? 谢谢你的帮助

【问题讨论】:

  • i = i + 1 行需要缩进。

标签: python python-3.x


【解决方案1】:

类似的东西?

L1 = [1,2,3,4,5,6,7,8,9]
L2 = ['a','b','c','d','e','f','g','h','i']
L3 = ['A','B','C','D','E','F','G','H','I']

from random import choice

for i in range(5):
    print list(map(choice, (L1, L2, L3)))

[4, 'h', 'A']
[7, 'b', 'G']
[3, 'c', 'C']
[6, 'f', 'H']
[5, 'b', 'A']

【讨论】:

  • 太棒了。我不得不把 list etc 语句放在括号中,然后完美地工作。我的地图有问题,我还没有完全理解。谢谢
  • @user1478335 啊,好点 - 我在 2.7 下运行它并记得添加 list 但不是 () 用于打印 - 干杯:)
  • 很好,即使列表大小不同,它也能正常工作。真的有帮助!
猜你喜欢
  • 1970-01-01
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-18
相关资源
最近更新 更多