比较两组数字

2024-10-03 23:28:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着比较两组匹配的数字。一旦找到一个号码,将与这些号码相关联的用户名及其匹配的号码数量附加到字典中。我的解释不是最好的,但也许我的代码可以显示我正在做什么。在

c.execute('SELECT * FROM {} WHERE drawnumber = (%s)'.format(numbertable),
          drawnumber)
numbers = c.fetchall()[0]
print(numbers)

numbers = set(imap(str.rstrip, numbers))

print(numbers)

c.execute('SELECT * FROM {} WHERE paid = (%s)'.format(table), paid)
entries = c.fetchall()
print(entries)

results = defaultdict(list)

for row in entries:
    user = row[1]
    number1 = row[2]
    number2 = row[3]
    number3 = row[4]
    number4 = row[5]
    number5 = row[6]
    pub_key = row[7]

    results[sum(n in numbers for n in row)].append(user)

仅供参考:集合编号如下:set(['11', '12', '15', '1', '3', '8'])

条目集如下所示:

^{pr2}$

Tags: infromformatexecutewhereselect号码row
1条回答
网友
1楼 · 发布于 2024-10-03 23:28:53

您可以使用set.intersection

for _, user, number1, number2, number3, number4, \
        number5, pub_key, _ in row:
    row_nums = set([number1, number2, number3, number4, number5])
    matching = row_nums.intersection(numbers)
    if matching:
        results[len(matching)].append(user)

但是numbers是一组字符串,而不是一组int。你应该把它修好。在

^{pr2}$

相关问题 更多 >