两个乒乓球队进行比赛问题

两个乒乓球队进行比赛,各出三人。
甲队为 a,b,c 三人,乙队为 x,y,z 三人。
已抽签决定比赛名单。有人向队员打听比赛的名单。
a 说他不和 x 比,c 说他不和 x,z 比,请编程序找出三队赛手的名单。

first = ["a","b","c"]
second = ["x","y","z"]
checklist = [("a","x"),("c","x"),("c","z")]   #不存在的组合阵容
l = []
tuple1 = ()
for i in range(len(first)):
    for j in range(len(second)):
        tuple1 = (first[i],second[j])
        if tuple1 not in checklist:
            l.append(tuple1)
print(l)

import itertools
first = ('a', 'b', 'c')
second = ('x', 'y', 'z')
check_list = [('a', 'x'), ('c', 'x'), ('c', 'z')]
for i in itertools.permutations(first, 3):    #将元组first组合成不同的排序顺序
    # print(i)
    f = lambda a, b: len([True for j in zip(a, b) if j not in check_list])   #判断满足,组成的列表数据不在check_list里面
    if f(i, second) == 3:
        print(list(zip(i, second)))
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值