当前位置: 首页 > 知识库问答 >
问题:

当输入是一组元组时,如何使输出返回True或False?

颜鸿云
2023-03-14

因此,我试图分析我的元组集h,看看对于该集中的x,是否有两对分别由2个元素和3个元素组成的元素。

所以就像每个第一个字符一样,必须有3个相同的字符和2个相同的字符。。。

但它们必须是连接的,例如如果有3A和2C,则顺序只能是AAAAC或CCAAA,而不能是CACAA或ACCAA等

那么比如说,,

{('AS', 'AD', 'CC', 'CH', 'CS')} returns True because there are 3 C and 2 A
{('AS', 'AD', 'SC', 'SH', 'CS')} returns False because there are 2 A, 2 S and one C.
{('CS', 'CD', 'CC', 'AH', 'AS')} returns True because there are 3 C and 2 A 

{('AS', 'DD', 'AC', 'AH', 'DS')} returns False because even though there are 3 A and 2 D, they are not following each other as indicated by the bold text above

下面是我对代码的尝试

def is_full_house(h):
    h = list(h)
    for hands in h:
        bools = True
        last_count = 1
        last_item = hands.pop(0)[0]
        while hands:
            item = hands.pop(0)
            if (item[0] == last_item):
                last_count += 1
            if (last_item != item[0]):
                if (last_count == 2) or (last_count == 3):
                    bools = True
                else:
                    bools = False
                    break
                last_item = item[0]

        return (bools)

然而,我的代码只有在它是一个列表时才起作用。。。当我放入一组元组时,它不起作用。。。

我应该做哪些改变才能让它发挥作用?

编辑:我的输出显示错误,元组没有属性pop。然而,我已经尝试将其转换为一个列表,如h=list(h)所示,但仍然不起作用

共有2个答案

黄意智
2023-03-14
h = list(h)

只是将集合更改为列表。如果要更改集合中的单个元组,则需要执行以下操作

h = [list(hands) for hands in h]

它不适用于元组的原因是元组无法修改。这样做是为了使元组更具性能,正是因为这个原因,元组没有弹出函数。

秋兴思
2023-03-14

传递给函数的结构,如{('AS','AD','CC','CH','CS')},都是元组集,因此您还需要在for循环中有一行来转换为列表:

for hands in h:
    hands = list(hands)
 类似资料:
  • 所以我有一个列表,它的数据是这样的。现在我必须找到列表中每个元素的第一个字符,看看是否有3个相同的字母和2个相同的字母。 注意:它们必须是有序的。。总是像x,x,x,y,y或y,y,x,x,x。任何其他组合,如x,y,y,x,x或x,y,x,y,x将返回False 比如说 返回,因为有3个A和2个C。 返回,因为顺序不对 返回,因为有3个A和2个C 返回,因为没有一个字符出现3次和2次。 这是我到

  • 编写一个方法,根据字符(char)[输入]是否是要编码的有效字符,返回true或false。即,如果输入[输入字符]为'a'-'z'或'a'-'z',则返回true,否则返回false。 为什么我的答案错了???? 公共静态布尔isValidChar_Q1(char chr){ }

  • 本文向大家介绍写出一个函数,输入是两个数组,输出是将两个数组中所有元素排序以后用一个数组输出。相关面试题,主要包含被问及写出一个函数,输入是两个数组,输出是将两个数组中所有元素排序以后用一个数组输出。时的应答技巧和注意事项,需要的朋友参考一下 参考回答: //快速排序 //两路归并 cerr << "内存分配失败" << endl;  

  • 问题内容: 据我所知,使用或实例化对象分别返回或的新实例。具有 新标识 的新实例对象。 在我实际测试它之前,这对我来说是很清楚的,我注意到它实际上返回了而不是预期的: 如预期的那样,分别使用和创建对象时,也会表现出这种行为: 我可以在状态文档中找到唯一相关的信息: […]例如,return和return 。 如果未提供任何参数,则构造函数将创建一个新的空元组。 可以说,这不足以回答我的问题。 那么

  • 问题内容: 打开元组时可以使用类型提示吗?我想这样做,但是结果是: 问题答案: 根据PEP-0526,您应该先注释类型,然后再进行拆包

  • 我想创建一个方法,返回用户输入值的双数组。我已经想出了如何创建一个方法,让用户选择一个数组应该包含多少个元素,然后将大小传递给下一个方法,即吐出一个由用户输入值组成的双数组。 我在这里的目标是练习学习如何使用基本方法(只是公共静态方法)来分解和解决手头的问题。 ... java包array_exercises;导入java.util.扫描仪; 公共类Array_练习{ } 预期的输出应该打印出ma