我的问题是试图让两个列表按特定顺序彼此相等
例如 [1,3,5,7,4,3,2,5,7,10] == [1,3,5,7,4,3,2,5,7 ,10]
我想继续计算 10 个数字的随机列表,直到它们按特定顺序彼此相等。
我遇到的问题是如何使它们按特定顺序彼此相等?我知道我不能做硬编码数字,因为它们可以是任何地方的任何值。
我知道语句 i[] == j[] 是不正确的,那是我想使两个列表相等但不确定要放什么的地方
import random
hats = []
people = []
count = 0
while True:
for i in range(11):
hats.add(random.choice([1,2,3,4,5,6,7,8,9,10]))
for j in range(11):
people.add(random.choice([1,2,3,4,5,6,7,8,9,10]))
if(i[] == j[]):
stop == True
break
else:
count+=1
print(f'Count is {count}')
请您参考如下方法:
这样就可以了,但是你可能会坐很长时间:
import random
hats = []
people = []
count = 0
while len(hats) != 10:
k=0
while k != 10:
n = random.choice([1,2,3,4,5,6,7,8,9,10])
m = random.choice([1,2,3,4,5,6,7,8,9,10])
if(n == m):
hats.append(n)
people.append(m)
k += 1
else:
hats = []
people = []
count += 1
k=10
print(count, hats, people)
如果它们不同,我不确定您是否必须重置列表,另一种更短的方法是:
import random
hats = []
people = []
count = 0
while len(hats) != 10:
k=0
while k != 10:
n = random.choice([1,2,3,4,5,6,7,8,9,10])
m = random.choice([1,2,3,4,5,6,7,8,9,10])
if(n == m):
hats.append(n)
people.append(m)
k += 1
else:
count += 1
k=10
print(f"times: {count}", f"hats: {hats}", f"people: {people}")
输出示例:
times: 130 hats: [7, 7, 9, 5, 1, 5, 1, 7, 4, 8] people: [7, 7, 9, 5, 1, 5, 1, 7, 4, 8]
