【问题标题】:How to collect defined items in lists python如何在列表python中收集定义的项目
【发布时间】:2015-01-14 08:40:37
【问题描述】:

我必须找到符号“a..,z”、“A,..,Z”、“空格”、“.”和“,”在一些数据中。

我试过代码:

fh = codecs.open("mydata.txt", encoding = "utf-8")
text = fh.read()
fh1 = unicode(text)
dic_freq_signs = dict(Counter(fh1.split()))
All_freq_signs = dic_freq_signs.items()
List_signs = dic_freq_signs.keys()
List_freq_signs = dic_freq_signs.values()

但是它得到了我所有的迹象,而不是我正在寻找的那些? 有人可以帮忙吗?

(而且必须是 unicode)

【问题讨论】:

  • 你在哪里检查标志?
  • 这是我的问题... :-)

标签: python list unicode collect


【解决方案1】:

检查字典迭代..

All_freq_signs = [ item for item in dic_freq_signs.items() if item.something == "somevalue"]
def criteria(value):
    return value%2 == 0
All_freq_signs = [ item for item in dic_freq_signs.items() if criteria(item)]

【讨论】:

  • item.something? :-) 你是什么意思?
  • import re Splitlist = re.split(r'[ ]', "hello you") print Splitlist
  • 你可以使用 All_freq_signs = [ item for item in dic_freq_signs.items() if item.something == "somevalue"] 或使用某些函数而不是与属性匹配的任何一种形式。
  • >>> Splitlist = [ item for item in re.split(r'[ ]', "hello you") if len(item) > 3] >>> print Splitlist ['hello'] >>>
【解决方案2】:

确保您导入字符串模块,使用它您可以轻松获取字符范围a to z 和A to Z

import string

Counter(any_string) 给出字符串中每个字符的计数。通过使用split(),计数器将返回字符串中每个单词的计数,这与您的要求相矛盾。所以我假设你需要字符数。

dic_all_chars = dict(Counter(fh1))    # this gives counts of all characters in the string
signs = string.lowercase + string.uppercase + ' .,'    # these are the characters you want to check

# using dict comprehension and checking if the key is in the characters you want
dic_freq_signs = {key: value for key, value in dic_all_chars.items() 
                             if key in signs}

dic_freq_signs 只会有你想算作键并将它们算作值的符号。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-24
    • 1970-01-01
    • 2018-10-06
    • 2015-04-30
    • 2021-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多