Python:count直到列表中的元素是一个元组
发布时间:2020-12-20 13:05:46 所属栏目:Python 来源:网络整理
导读:我有一个这样的列表: MyList = [2,3,(1,2),5] 其中元素0,1和3是整数,而元素2是元组.我想创建一个计数器,告诉我在元组出现之前列表中有多少元素. 在这个例子中,我想要一个计数器,它将取值2(2个元素,2和3,在第一个元组之前).我尝试过以下方法: counter = 0wh
我有一个这样的列表:
MyList = [2,3,(1,2),5] 其中元素0,1和3是整数,而元素2是元组.我想创建一个计数器,告诉我在元组出现之前列表中有多少元素. counter = 0 while MyList[counter] is not tuple: counter = counter + 1 但它不起作用,因为当它评估语句“(1,2)不是元组”而不是提高False时它继续取值True.知道问题可能是什么以及如何解决问题?谢谢. 解决方法
您可以使用for循环并突破:
counter = 0 for elem in MyList: if isinstance(elem,tuple): break counter += 1 或者,使用enumerate(): for counter,elem in enumerate(MyList): if isinstance(elem,tuple): break # counter *could* be unbound if `MyList` is empty 或者您可以使用 from itertools import takewhile counter = sum(1 for elem in takewhile(lambda e: not isinstance(e,tuple),MyList)) 演示后一种方法: >>> from itertools import takewhile >>> MyList = [2,5] >>> sum(1 for elem in takewhile(lambda e: not isinstance(e,MyList)) 2 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |