首页 > 解决方案 > 如何遍历列表列表并在每个列表中选择随机元素?

问题描述

我有列表列表,我需要遍历它并在每个列表中选择一个元素。我需要做10次。这是我的代码示例:

from itertools import chain
import random
test_list = [[4, 5, 5], [2, 7, 4], [8, 6, 3]]

我试过了:

for element in range(10):
    for element in list:
        res = random.choice(list(chain.from_iterable(test_list)))
        print("Random number from Matrix : " + str(res))

但我得到了错误:'type' object is not iterable

标签: python

解决方案


问题

  • 您声明element两次作为迭代变量
  • 你迭代list哪个是 Python 类型,你需要迭代test_list
  • 您需要选择迭代的当前子列表中的一个元素,而不是整个test_list

解决方案

import random

test_list = [[4, 5, 5], [2, 7, 4], [8, 6, 3]]

for i in range(10):
    print(f"Round {i}")
    for sublist in test_list:
        res = random.choice(sublist)
        print("Random number from Matrix :", res)

给予类似的东西

Round 0
Random number from Matrix : 5
Random number from Matrix : 7
Random number from Matrix : 6
Round 1
Random number from Matrix : 5
Random number from Matrix : 4
Random number from Matrix : 8
Round 2
Random number from Matrix : 5
Random number from Matrix : 4
Random number from Matrix : 8
Round 3
Random number from Matrix : 5
Random number from Matrix : 7
Random number from Matrix : 3
...

推荐阅读