반응형
TypeError: 'zip' object is not subscriptable
I have a tagged file in the format token/tag and I try a function that returns a tuple with words from a (word,tag) list.
def text_from_tagged_ngram(ngram):
if type(ngram) == tuple:
return ngram[0]
return " ".join(zip(*ngram)[0]) # zip(*ngram)[0] returns a tuple with words from a (word,tag) list
In python 2.7 it worked well, but in python 3.4 it gives me the following error:
return " ".join(list[zip(*ngram)[0]])
TypeError: 'zip' object is not subscriptable
Can someone help?
In Python 2, zip returned a list. In Python 3, zip returns an iterable object. But you can make it into a list just by calling list, as in:
list(zip(...))
In this case, that would be:
list(zip(*ngram))
With a list, you can use indexing:
list(zip(*ngram))[0]
etc.
But if you only need the first element, then you don't strictly need a list. You could just use next.
In this case, that would be:
next(zip(*ngram))
ReferenceURL : https://stackoverflow.com/questions/27431390/typeerror-zip-object-is-not-subscriptable
반응형
'Program Club' 카테고리의 다른 글
| AngularJS How to dynamically add HTML and bind to controller (0) | 2020.12.25 |
|---|---|
| Hourly rotation of files using logrotate? (0) | 2020.12.25 |
| What does deployment target mean? (0) | 2020.12.25 |
| FULL OUTER JOIN with SQLite (0) | 2020.12.25 |
| What is the correct way to unset a linux environment variable in python? (0) | 2020.12.25 |