【发布时间】:2017-01-17 15:39:42
【问题描述】:
我正在尝试比较#12 线上的两个列表并返回找到的匹配项。
这些列表包含一个用户选择的号码 (un),其中一个是随机生成的 (rn)。
例如,[['1', '5', '3', '7']] 和 [['9', '6', '3', '2']] 将返回 [3]。
我对 python 还很陌生,正在使用HERE 找到的解决方案,但我的代码还没有成功。
import random
import re
rn = []
un = []
Numbers = range(1000,9999)
RandomNumber = random.choice(Numbers)
RandomNumber = str(RandomNumber)
def check():
x = set(rn) & set(un) #12
print (x)
def numsys():
b = list(RandomNumber)
rn.append(b)
print(rn)
print(un)
check()
def numval():
while True:
UserNum = (input("Please enter a 4 digit number: "))
if re.match("^[0-9]{4,4}$", UserNum):
a = list(UserNum)
un.append(a)
numsys()
break
numval()
【问题讨论】:
-
该错误表示“您不能将列表放入集合中”。使用
un.extend(a)而不是un.append(a)。 -
你不能做
set([['1', '1', '1', '1']]),因为它是一个列表中的一个列表,所以试试x = set(rn[0]) & set(un[0])吧 -
@Rawing 辉煌!感谢您及时的回复。非常有帮助:)
-
@JackEvans 似乎也有效!谢谢:)
标签: python list python-3.x string-comparison list-comparison