1

分位問題を作成していますが、このようなことをする必要があります

間隔:

150-155
155-160
160-165
165-170
170-175
175-180
180-185

>> inferior_limit = 150
>> superior_limit = 185
>> range = inferior_limit - superior_limit
>> number_of_intervals = 5

これらは変数であり、テーブルの間隔を実行しているため、それが必要です

>> width = range/number_of_intervals
>> while inferior_limit <= superior_limit
# there is my problem
>> inferior_limit += width
>> print inferior_limit
4

2 に答える 2

2

これはあなたが意味したものですか?

>>> inf, sup, delta = 150, 185, 5
>>> print '\n'.join('{}-{}'.format(x, x + delta) for x in xrange(inf, sup, delta))
150-155
155-160
160-165
165-170
170-175
175-180
180-185
于 2012-07-26T04:46:34.287 に答える
1
>>> start, stop, step = 150, 185, 5
>>> r = range(start, stop + 1, step) # You can use xrange on py 2 for greater efficiency
>>> for x, y in zip(r, r[1:]):
        print '{0}-{1}'.format(x, y)


150-155
155-160
160-165
165-170
170-175
175-180
180-185

これを行うより効率的な方法は、itertoolsペアワイズ レシピを使用することです。

from itertools import tee, izip
def pairwise(iterable):
    "s -> (s0,s1), (s1,s2), (s2, s3), ..."
    a, b = tee(iterable)
    next(b, None)
    return izip(a, b)

for x, y in pairwise(r):
    print '{0}-{1}'.format(x, y)

また、ここでは楽しみのために、 を使用したソリューションをitertools.starmap示します。誰も使用したことがないからです!

from itertools import starmap
print '\n'.join(starmap('{0}-{1}'.format, pairwise(r)))
于 2012-07-26T05:35:22.203 に答える