Ik haal gegevens uit mijn woordenboek, maar het lijkt erop dat ze allemaal in unicode zijn. Hoe kom ik van de Unicode-onzin af?
Antwoord 1, autoriteit 100%
Ik neem aan dat je code je de foutmelding geeft, TypeError: zip-argument #1 moet iteratie ondersteunen. U krijgt deze foutmelding vanwege de uitdrukking zip(float(price), Bids)
. Deze vereenvoudigde code demonstreert de fout:
>>> price = str(u'12.3456')
>>> bids = ['1.0', '2.0']
>>> zip(float(price), bids)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: zip argument #1 must support iteration
De Python 2.x zip()
gebouwd -in bibliotheekfunctievereist dat al zijn argumenten iterabel zijn. float(price)
is geen herhaling.
Als je tuples wilt maken die float(price)
combineren met elk element van de array Bids
, kun je itertools.repeat()
in de eerste argumentuitdrukking.
>>> import itertools
>>> price = str(u'12.3456')
>>> bids = ['1.0', '2.0']
>>> zip(itertools.repeat(float(price),len(bids)), bids)
[(12.345599999999999, '1.0'), (12.345599999999999, '2.0')]
Ik zie niet in dat uw gebruik van Unicode-gegevenstypen iets te maken heeft met de TypeError
.