2011-12-03 14 views
2

リスト(data1)から10個の数字の最小値と最大値を計算するプログラムを作成しています。TypeError: 'float'オブジェクトは反復可能ではありません

temp_min10=min(data1[x-z][3]) 
temp_max10=max(data1[x-z][2]) 

全プログラム:任意の助け

x=int(0) 
for line in data1: 
    if x>=9: 
     min10=0 
     max10=0 
     for z in range(0,10): 
      temp_min10 = temp_max10 = 0 
      temp_min10=min(data1[x-z][3]) 
      if temp_min10<min10: 
       min10=temp_min10 
      temp_max10=max(data1[x-z][2]) 
      if temp_max10>max10: 
       max10=temp_max10 
      d_chan.append([max10,min10]) 
    else: 
     d_chan.append([0,0]) 
     x+=1 

おかげで、次の行のために:私は「『フロート』は、オブジェクトが反復可能ではありませんTypeError例外」を受け付けております! minmaxため

+1

私たちに 'data1'を見せてください。また、 'int(0)'には何がありますか? – kindall

+0

確かに一連の愚かな間違い... data1は数字を含むリストのリストです。私はもともとint(0)を試していました。なぜなら私は浮動小数点の問題(今では "x = 0")を理解できなかったからです。コードは、最大値と最小値を決定するために一定量の数値を反復することになっていました。私は単純な関数を使って問題を解決しました。 – user1079546

答えて

3

可能引数のいずれか反復可能又は2つの以上のスカラーです。ドキュメントhere。あなたはiterableではない1つの引数を与えました。それはフロートです。

脇:(1)表示されている字下げは間違っています。 (a)ソースファイルのタブを避ける(b)インデントが論理的に正しいことを確認する必要があります。 (2)コードはfor line in data1:を反復していますが、lineを再度言及しません。 xであなたが何をしているかを慎重に確認する必要があるようです。それは明らかではない。もう一度あなたのコードを読んだ後

更新

次のコードは、おそらくあなたがやりたいだろう。

# These assertions state the presumed effect of code that you have not included. 
assert len(data1) == 10 
assert d_chan == [] 
# I suspect a typo in the OP ... it makes more sense for the 
# two values below to be the same. 
MIN_COL = 3 
MAX_COL = 2 
d_chan = [[0, 0] for i in xrange(9)] 
min10 = min(data1[i][MIN_COL] for i in xrange(10))  
max10 = max(data1[i][MAX_COL] for i in xrange(10)) 
d_chan.append([max10, min10]) 
+0

あなたの助けに感謝 - 非常にばかげたエラー。私は、x inとin line in data1:をxのlen(data1)を得るための複雑な方法として使用しました。 – user1079546

0
min_number = reduce(min,data1) 
max_number = reduce(max,data1) 
関連する問題