【问题标题】:How to iterate through two lists in parallel with one list randomized如何在一个随机列表中并行遍历两个列表
【发布时间】:2015-07-02 18:35:42
【问题描述】:

This thread 解释了如何遍历两个并行列表。

但是,当我将该课程应用于打乱列表时,我收到以下错误:“zip 参数 #2 不支持迭代。”为什么打乱列表不支持迭代?我还能如何随机化答案选择的顺序?

import random

def answers():
    answerList = random.shuffle([answer1, answer2, answer3, correct])
    numberList = ["1: ", "2: ", "3: ", "4: "]
    for x,y in zip(numberList,answerList):
        print x,y 

prompt = "What is the average migrating speed of a laden swallow?"
answer1 = "Gas or electric?"
answer2 = "Metric or English?"
answer3 = "Paper or plastic?"
correct = "African or European?"

print prompt
answers()

【问题讨论】:

    标签: list python-2.7 iteration tuples


    【解决方案1】:

    random.shuffle 洗牌就地。执行以下操作:

    answerList = [answer1, answer2, answer3, correct]
    random.shuffle(answerList)
    

    【讨论】:

    • 感谢您的回复。你能解释一下为什么这两种方法会产生不同的结果吗?
    • random.shuffle 返回 。而None不支持迭代。
    【解决方案2】:

    感谢 pacholik 的解决方案。

    import random
    
    def answers():
        answerList = [answer1, answer2, answer3, correct]
        random.shuffle(answerList)
        numberList = ["1: ", "2: ", "3: ", "4: "]
        for x,y in zip(numberList,answerList):
            print x,y 
    
    prompt = "What is the average migrating speed of a laden swallow?"
    answer1 = "Gas or electric?"
    answer2 = "Metric or English?"
    answer3 = "Paper or plastic?"
    correct = "African or European?"
    
    print prompt
    answers()
    

    【讨论】:

      猜你喜欢
      • 2010-12-12
      相关资源
      最近更新 更多