簡體   English   中英

兩個列表(對)中的值相同

[英]Same values in two lists (pairs)

我需要一個列表,其中一個列表隨機生成的值在1到8之間,另一個列表隨機值在1到8之間。 我已經在下面的代碼中做到了這一點:

from random import *
listA = []
listB = []
inp = int(input('Number of values generated'))
for x in range(0,inp):
    num = randint(0,8)
    listA.append(num)
    if num == 0:
        numB = randint(1,8)
    else:
        numB = randint(0,8)
    listB.append(numB)
print(listA)
print(listB)

在同一試驗中,第一個列表中的值不能為0,第二個列表中的值也不能為零。 我的代碼中已經有這個了。 但這是我的問題。

[4,5,2,5,1]

[1,2,3,2,4]

在listA中,兩次生成5,第二個列表下方的2也生成兩次。 當他們創建像這樣的一對時,我想不出解決方案來將它們從清單中剔除。

您可以使用以下幫助函數來生成不在列表中的唯一編號,並將其附加到列表中。

這應該為您工作:

def generateUnique(list, start, end):  # Helper Function to generate and return unique number not in list
    num = randint(start, end)
    while num in list:  # loop will keep generating a value, until it is unique in the given list
        num = randint(start, end)
    return num


from random import *
listA = []
listB = []
inp = int(input('Number of values generated'))
for x in range(0,inp):
    num = generateUnique(listA, 0, 8)
    listA.append(num)
    if num == 0:
        numB = generateUnique(listB, 1, 8)
    else:
        numB = generateUnique(listB, 0, 8)
    listB.append(numB)

print(listA)
print(listB)

希望這可以幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM