如何知道一个数字是否在另一个数字中

2024-10-01 00:17:02 发布

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

我有一个清单:

numbers = [12, 23, 26, 54]

我需要知道每对数字是否至少有一个共同的数字。例如12有数字12,所以应该包括对(12,23),因为它们都有数字2。我想把成双的单子寄回来。例如

>>> numbers = [12, 23, 26, 54]
>>> function(numbers)
[(12, 23), (12, 26), (23, 12), (23, 26), (26, 12), (26, 23)]

这是我目前的密码

pari_his=([12, 23, 26, 54])
par=set()
parus=[]
b=list()
c=list()
resitev=list()
for i in pari_his:
    i=str(i)
    for e,j in enumerate(i):
        if e%2==0:
            b.append(j)
        else:               
            c.append(j)
print(b,c)
for ena, dva in zip(b, c):
    kuku=(ena,dva)              
    parus.append(tuple(kuku))
print(parus)
for juj in parus:
    print(juj[0],juj[1])

Tags: infor数字list单子printnumbersappend
1条回答
网友
1楼 · 发布于 2024-10-01 00:17:02

使用itertools.product获取元组(必须过滤两次相同的数字),然后使用数字的set交集查看它们是否有任何共同的数字。你知道吗

import itertools
numbers = [12, 23, 26, 54]
[t for t in itertools.product(numbers, numbers) if set(str(t[0])) & set(str(t[1])) and t[0] != t[1]]

[(12, 23), (12, 26), (23, 12), (23, 26), (26, 12), (26, 23)]

如果没有itertools,您可以自己构建元组。你知道吗

numbers = [12, 23, 26, 54]
[(i, j) for i in numbers for j in numbers if set(str(i)) & set(str(j)) and i != j]

[(12, 23), (12, 26), (23, 12), (23, 26), (26, 12), (26, 23)]

相关问题 更多 >