簡體   English   中英

簡化 Python 中的循環

[英]Simplify loop in Python

我是 Python 的新手,我想知道我是否可以簡化這個循環,我需要處理超過 100k 的字符串,這需要太多時間。 我已經閱讀了列表理解,但我不知道如何轉換它。

result_pos_tagging = nltk.pos_tag(result_ps)
unnecessary_tags = ['CC','DT','EX','IN','MD','PDT','WRB','WP$','WP','WDT','POS']

for r in result_pos_tagging:
        if r[1] in unnecessary_tags:
            result_pos_tagging.remove(r)

這是我嘗試過的:

m_list.append(r for r in result_pos_tagging if r[1] not in unnecessary_tags)

這就是我得到的:

[<generator object process_message.. at 0x00000247198AE648>]

如果您在 for 循環中所做的事情是正確的,那么這就是使用列表理解完成的方式

m_list = [r for r in result_pos_tagging if r[1] not in unnecessary_tags]

閱讀有關列表理解的更多信息

您在括號內創建了一個生成器表達式。 生成器是一種迭代器,可以包含任意數量的項目。

使用extend代替append將迭代器解壓縮到您的列表中:

a = []
a.extend(range(10))
print(a)

Output:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

暫無
暫無

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

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