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

Python列表-查找字符串发生的次数

仲皓君
2023-03-14

如何查找每个字符串在列表中出现的次数?

说我有这个词:

"General Store"

这在我的清单上大概有20次。我怎样才能发现它在我的列表中出现了20次?我需要知道这一点,以便将该数字显示为一种类型的“投票”答案。

例如:

General Store - voted 20 times
Mall - voted 50 times
Ice Cream Van - voted 2 times

我将如何以类似的方式显示它?:

General Store
20
Mall
50
Ice Cream Van
2

共有3个答案

巫马瀚漠
2023-03-14

举个简单的例子:

   >>> lis=["General Store","General Store","General Store","Mall","Mall","Mall","Mall","Mall","Mall","Ice Cream Van","Ice Cream Van"]
   >>> for x in set(lis):
        print "{0}\n{1}".format(x,lis.count(x))


    Mall
    6
    Ice Cream Van
    2
    General Store
    3
蒙峰
2023-03-14

虽然其他答案(使用list.count)确实有效,但它们在大型列表上的速度可能会非常慢。

考虑使用<代码>集合。计数器< /代码>,如http://docs.python.org/library/collections.html

示例:

>>> # Tally occurrences of words in a list
>>> cnt = Counter()
>>> for word in ['red', 'blue', 'red', 'green', 'blue', 'blue']:
...     cnt[word] += 1
>>> cnt
Counter({'blue': 3, 'red': 2, 'green': 1})
邓开济
2023-03-14

使用count方法。例如:

(x, mylist.count(x)) for x in set(mylist)
 类似资料:
  • 问题内容: 背景: 示例列表: 我想检索一个子串是否匹配的元素,例如 码: 如果列表中的任何元素包含模式,则上面的命令会打印出来。 我想打印与子字符串匹配的元素。因此,如果我要检查,我只想从列表中打印。 问题答案: print [s for s in list if sub in s] 如果要用换行符分隔它们: 完整示例,不区分大小写:

  • 我有超过15个字符串列表,每个列表包含几个不同的代码。每个列表包含一种特定类型的代码。我有一个输入代码,必须找出该输入代码属于哪个列表,并根据结果返回一个特定字符串。我用if,else if来做这个。下面是示例代码 每个列表如下所示:公共静态列表codeTypeOneList=新ArrayList(); (其他代码类型的类似列表) 有没有更好的方法来实现这一点?谢谢

  • 问题内容: 我得到了这个清单: 我想用一些与之相似的奇异值代替,从而得到一个新的清单: 问题答案: 这些称为列表推导。

  • 问题内容: 我似乎无法找到的代码等效,像功能,这在任何地方为Python: 基本上,我想检查一个字符串是否包含列表中的子字符串。 问题答案: 试试这个测试: 如果中包含任何子字符串,它将返回。 请注意,链接的问题中有的答案的Python类似物: 在Python 3中,您可以直接使用: 虽然上面使用生成器表达式的版本可能更清楚。

  • 问题内容: 需要在某种类型的查找表中放入大约1000万个值,所以我想知道列表或字典哪个更有效? 我知道你可以为这两种方法执行以下操作: 和 我的想法是,该命令将更快,更高效。 谢谢你的帮助。 编辑1 我正在尝试做的更多信息。 欧拉问题92。我正在查找表,以查看计算出的值是否已经准备好了。 编辑2 查找效率。 编辑3 没有与值相关的值…那么集合会更好吗? 问题答案: 速度 关于数据结构中的项目数,列

  • 问题内容: 如何找到两个子字符串之间的字符串? 我当前的方法是这样的: 但是,这似乎效率很低而且不合Python。什么是做这样的更好的方法? 忘了提:该字符串可能无法启动,并最终和。他们之前和之后的字符可能更多。 问题答案: