[英]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.