【问题标题】:How to count the occurrences of a character in a list of strings? [duplicate]如何计算字符串列表中某个字符的出现次数? [复制]
【发布时间】:2023-03-27 23:40:01
【问题描述】:

这里的缩进搞砸了,但我想计算“。”的次数。出现在迷宫上并确定剩余的位数,但 .count 似乎不起作用。当我使用 bitsLeft 变量时,它保持为 0 而不是计算“。”的次数。出现在数组中

level_1 = [
"$$$$$$$$$$$$$$$$$$$$$$$$$",
"$!0......>0........#0>..$",
"$.0000.00000.0000000000.$",
"$...00.0#....0!00.0.000.$",
"$00.00.00000.0.00.0.000.$",
"$#0..........0..0.0.....$",
"$.0000.00000.00.0.0.000.$",
"$......0........0.0.0...$",
"$.000000.00000000...0.0.$",
"$.0......0...0...00.0.0.$",
"$...000000>0...0....0.0.$",
"$00.000000000000000.0.0.$",
"$...0.....0000!0........$",
"$.000.000.0>#0.0.00000.0$",
"$.....0.0.0..0.0.0..0..0$",
"$.00000.0.0..0.0.0..0.0.$",
"$.0>....0.0000.0.0..0.0.$",
"$.00000.0...P..0.0000.0.$",
"$....00.00000000.0....0.$",
"$000.00..........0.0000.$",
"$!0..00.00000000.0......$",
"$.0.000..........0.0000.$",
"$.0.0000.0000000.0.0>00.$",
"$........0#........0....$",
"$$$$$$$$$$$$$$$$$$$$$$$$$"
]

bitsLeft = level_1.count ('.')

【问题讨论】:

  • 看看collections 模块。它有一个Counter 类; here
  • @kstullich 在这种情况下不需要,如果你只是想计算.,那么内置的str.count 会明显更快
  • 您的根本问题是level_1 是一个list 字符串。您想计算. 在每个字符串中出现的次数。

标签: python


【解决方案1】:

您可以将sum 和一个列表推导结合起来,以获取每个字符串的计数,如下所示:

sum(s.count(".") for s in level_1)

结果:

265

【讨论】:

  • 成功了,非常感谢
  • @randomname14 没问题,如果您的问题已解决,请务必点击旁边的复选标记接受答案。
【解决方案2】:

string.count() 需要一个字符串。您可以使用''.join(level_1) 连接str.count() 方法的字符串:

bitsLeft = ''.join(level_1).count ('.')

【讨论】:

  • list.count() 在他提供的代码中被调用。
猜你喜欢
  • 2013-02-24
  • 2017-10-09
  • 2010-11-12
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 2016-06-21
相关资源
最近更新 更多