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