追加元素后如何仅打印一次列表?有无无需迭代统计列表中'C'数量的方法?
问题解答
1. 调整为追加完成后仅打印一次list1
你当前代码每次append后都会打印列表,是因为print(list1)语句放在了if判断的缩进块内,每匹配到一个'C'就会执行一次打印。只需将print语句调整到和for循环同级,等所有追加操作完成后再执行即可。
注意:不要使用
list作为变量名,会覆盖Python内置的列表类型关键字,后续调用列表相关方法会出现异常,这里我们将原变量名修改为origin_tuple。
修正后代码如下:
origin_tuple = ('S', 'S', 'C', 'R', 'C', 'R', 'S', 'C', 'C', 'R', 'S', 'C', 'S', 'S', 'R', 'C', 'R', 'C', 'C', 'S', 'R') list1 = [] for i in origin_tuple: if i == 'C': list1.append('C') # 打印语句放在for循环外,仅执行一次 print(list1)
2. 无需遍历统计'C'总数量的方法
Python的所有序列类型(包括你用到的元组、列表)都内置了count()方法,可以直接返回指定元素的总出现次数,不需要手动写遍历逻辑:
- 如果要直接统计原元组中的'C'数量,连构建list1的步骤都可以省略,直接调用:
origin_tuple.count('C')即可得到结果 - 如果你已经构建了全为'C'的list1,除了可以调用
list1.count('C')外,直接使用len(list1)也能得到'C'的总数量,只要将len()的调用和打印逻辑放在循环外,就不会出现每轮迭代都输出长度的问题。
使用示例:
# 直接统计原数据的'C'总数量 c_total = origin_tuple.count('C') print(c_total)
内容的提问来源于stack exchange,提问作者user17011190
相关产品推荐
相关产品推荐

