簡體   English   中英

Python-如何計算出現次數

[英]Python - How to count number of occurrences

我正在使用jira-python庫從jira查詢數據。 我從jira取回了我需要的數據,但是處理數據給我帶來了問題。

我正在計算從查詢中返回的所有組件的出現次數。 例如,我的查詢將返回結果:

Component A
Component B
Component A
Component C

我正在尋找的結果是這樣的:

Component A, 2
Component B, 1
Component C, 1

這是我當前代碼的一個片段:

search = 'jira query'
issues = jira.search_issues(search, maxResults=100)
for issue in issues:
    [c.name for c in issue.fields.components]

從這里我試圖計算和求和c.name

sum(1 for c.name in issue.fields.components)

但是,這不會產生正確的結果,因為我會得到類似計算每個結果中字符出現次數的結果。

任何見解/幫助將不勝感激

將名稱的列表/生成器表達式傳遞給collections.Counter對象。

import collections
>>> my_result = '''Component A
... Component B
... Component A
... Component C'''
>>> my_result = my_result.split('\n')   # if they are saperated by newline
>>> my_result
['Component A', 'Component B', 'Component A', 'Component C']
>>> my_result_count = collections.Counter(my_result)
>>> my_result_count
Counter({'Component A': 2, 'Component B': 1, 'Component C': 1})
>>> for x in sorted(my_result_count.keys()):
...     print x + ", " + str(my_result_count[x])
... 
Component A, 2
Component B, 1
Component C, 1

collections.Counter將返回字典及其單詞的出現

仔細研究問題和組成部分並計數。

# dictionary where we will hold results of counting of componets
count_result = {}

# we search for issues we are interested in
issues = jira.search_issues("project = PROJECT_KEY", maxResults=100)
for issue in issues:
    # in case there is more components we iterate through them all
    # and count them in count_result dictionary
    for component in [c.name for c in issue.fields.components]:
        if count_result.get(component):
            # if component already exists in count_result dictionary
            count_result[component] += 1
        else:
            # if component doesn't exists in count_result dictionary
            count_result[component] = 1

# print out of result
for name,value in count_result.items():
    print "%s, %d" % (name, value)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM