相同列表洗牌不会';t作为函数//Python工作

相同列表洗牌不会';t作为函数//Python工作,python,shuffle,Python,Shuffle,我目前正在尝试编写一个简单的shuffle函数,它将两个列表完全混合。我已经让它在函数外工作,但一旦我添加它,它就会正常打印列表。有人能告诉我我做错了什么,或者给我指出正确的方向吗?我相信这很简单 第一段代码是我正在尝试做的,第二段代码是目前有效的 谢谢所有能帮忙的人 干杯 import random ARRAYQ = ["Q1", "Q2", "Q3", "Q4"] ARRAYA = ["A1", "A2", "A3", "A4"] def shuffle(list1, list2):

我目前正在尝试编写一个简单的shuffle函数,它将两个列表完全混合。我已经让它在函数外工作,但一旦我添加它,它就会正常打印列表。有人能告诉我我做错了什么,或者给我指出正确的方向吗?我相信这很简单

第一段代码是我正在尝试做的,第二段代码是目前有效的

谢谢所有能帮忙的人

干杯

import random
ARRAYQ = ["Q1", "Q2", "Q3", "Q4"]
ARRAYA = ["A1", "A2", "A3", "A4"]

def shuffle(list1, list2):
    enclosed = list(zip(list1, list2))
    random.shuffle(enclosed)
    list1, list2 = zip(*enclosed)
    return list1, list2

shuffle(ARRAYQ, ARRAYA)
print(ARRAYQ)
print(ARRAYA)


看一下第一个片段。它正常地打印列表,因为您打印在函数之前声明的变量

应该是:

import random
ARRAYQ = ["Q1", "Q2", "Q3", "Q4"]
ARRAYA = ["A1", "A2", "A3", "A4"]

def shuffle(list1, list2):
    enclosed = list(zip(list1, list2))
    random.shuffle(enclosed)
    list1, list2 = zip(*enclosed)
    return list1, list2

list1, list2 = shuffle(ARRAYQ, ARRAYA)
print(list1)
print(list2)

因为您只是在调用shuffle,所以您没有将结果分配回来。@user3764893谢谢。用这个
ARRAYQ,ARRAYA=shuffle(ARRAYQ,ARRAYA)
import random
ARRAYQ = ["Q1", "Q2", "Q3", "Q4"]
ARRAYA = ["A1", "A2", "A3", "A4"]

def shuffle(list1, list2):
    enclosed = list(zip(list1, list2))
    random.shuffle(enclosed)
    list1, list2 = zip(*enclosed)
    return list1, list2

list1, list2 = shuffle(ARRAYQ, ARRAYA)
print(list1)
print(list2)