admin管理员组文章数量:1794759
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单
题目
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单
解析:
先把所有满足“a说他不和x比,c说他不和x,z比”的元组用列表的形式列出来
然后遍历列表中元组(a,b)的第一个元素,
如果第一个元素没有与之相同的就记录下这个元组,接着遍历第二个元素
并且把所有与第一个元组的第二个元素相同的其他元组删除,
直到遍历完整个列表
再次遍历列表把所有与所选元组第一个元素相同的其他元组删除,
直到遍历完整个列表
代码:
# 两个乒乓球队进行比赛,各出三人。
# 甲队为a,b,c三人,乙队为x,y,z三人。
# 已抽签决定比赛名单。有人向队员打听比赛的名单。
# a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
# 解析:
# 先把所有满足“a说他不和x比,c说他不和x,z比”的元组用列表的形式列出来
# 然后遍历列表中元组(a,b)的第一个元素,
# 如果第一个元素没有与之相同的就记录下这个元组,接着遍历第二个元素
# 并且把所有与第一个元组的第二个元素相同的其他元组删除,
# 直到遍历完整个列表
# 再次遍历列表把所有与所选元组第一个元素相同的其他元组删除,
# 直到遍历完整个列表
jia, yi, complete = ['a', 'b', 'c'], ['x', 'y', 'z'], [] # 甲乙球队
for i in range(0, 3):for j in range(0, 3):complete.append((jia[i],yi[j]))if (jia[i],yi[j])==('a','x') or (jia[i],yi[j])==('c','x') or (jia[i],yi[j])==('c','z'):del complete[-1]
k,tem,com=0,0,0
while k<len(complete):n,count,m=0,0,0while n<len(complete) and count<2:if complete[n][0]==complete[k][0]:count+=1n+=1if count<2:tem,com=complete[k][1],complete[k][0]while m < len(complete):if complete[m][1] == tem and complete[m][0] != com:del complete[m]else:m += 1k+=1
k=0
while k<len(complete):n,count,m=0,0,0while n<len(complete) and count<2:if complete[k][1]==complete[n][1]:count+=1n+=1if count<2:tem,com=complete[k][1],complete[k][0]while m < len(complete):if complete[m][0] == com and complete[m][1] != tem:del complete[m]else:m += 1k+=1print('比赛:',complete)
结果:
本文标签:
版权声明:本文标题:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1695238737a300162.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。