「asin.txt」というドキュメントがあります。
in,Huawei1,DE.FR.IT.UK
out,Huawei2,DE.FR.IT
out,Huawei3,FR
in,Huawei4,FR.IT
in,Huawei5,IT
このファイルを開いて OrderedDict を作成します。
from collections import OrderedDict
reader = csv.reader(open('asin.txt','r'),delimiter=',')
reader1 = csv.reader(open('asin.txt','r'),delimiter=',')
d = OrderedDict((row[0], row[1].strip()) for row in reader)
d1 = OrderedDict((row[1], row[2].strip()) for row in reader1)
「for」ループを作成するよりも:
from itertools import izip
for (a, b), (c, e) in izip(d.items(), d1.items()):
"""in the first time: a='in'; b='Huawei1'; c='Huawei1'; e='DE.FR.IT.UK'"""
c1, c2, c3, c4 = c.split('.') # i'm cutting variable 'c'
try:
...........
しかし、Pythonよりもエラーが発生します:
c1, c2, c3, c4 = c.split('.')
ValueError: need more than 3 values to unpack
「asin.txt」の最初の行にあるため、エラーが発生する理由はわかっています。
in,Huawei1,DE.FR.IT.UK
2回目の昏睡の後、私は4つの国とを持っていますが、「asin.txt」の2行目に
out,Huawei2,DE.FR.IT
2回目の昏睡の後、私には3つの国があります。そして、私はこの声明を持っていc1, c2, c3, c4 = c.split('.')
ます。
asin.txtの国とまったく同じように毎回cをカットするプログラムを作成するにはどうすればよいですか?
たとえば、最初のラップでは、2 番目に 4 ピース、3 番目に 1 ピースにカットします....