如何在 Python 中使用 while 循环计算列表中的字符串?

Posted

技术标签:

【中文标题】如何在 Python 中使用 while 循环计算列表中的字符串?【英文标题】:How can I count strings in a list with while loop in Python? 【发布时间】:2021-10-12 18:24:50 【问题描述】:

假设我有一个包含 0 个或多个元素的列表,如何在不使用 count() 或 while 循环以外的其他方法的情况下返回其中的字符串数量?我尝试了下面的代码,但它总是崩溃。

values = ["one", "two", [], 6]

def count_str(values):
    index = 0
    while index <= len(values):
        if type(values[index]) == str:
            index += 1
    return index

【问题讨论】:

问题是你使用相同的索引来迭代值,并对字符串进行计数......所以当它不是字符串时,索引不会改变,并且循环永远不会结束。使用两个变量。 【参考方案1】:

问题是你有一个无限循环,因为你只在它是一个字符串时增加索引,鉴于并非所有实例都是,循环永远不会结束

尝试:

values = ["one", "two", [], 6]

def count_str(values):
  index = 0
  counter = 0
  while index <= len(values)-1:
    if type(values[index]) == str:
      counter += 1
    index += 1
  return counter

ans = count_str(values)
print(ans)

【讨论】:

以上是关于如何在 Python 中使用 while 循环计算列表中的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Python中打破while循环?

如何在 Python 中跳出 while 循环?

如何在while循环中使用if,else语句从变量中读取一系列值进行计算

为啥空列表在 Python 的 while 循环中计算为 False

如何在 Python 中的另一个 while 循环中正确地创建一个 while 循环?

为啥我的 while 循环中的条件在 python 中不起作用?