-1

文字列n='22'と別の数値a=4があるとすると、nはstr、aはintになります。次のようなリストのグループを作成したいと思います。

list1 = [22, 12, 2] #decreasing n by 10, the last item must be single digit, positive or 0
list2 = [22, 11, 0] #decreasing n by 11, last item must be single digit, positive or 0
list3 = [22, 21, 20] #decreasing n by 1, last item must have last digit 0
list4 = [22, 13] #decreasing n by 9, last item must be single digit. if last item is == a, remove from list
list5 = [22, 32] #increasing n by 10, last item must have first digit as a - 1
list6 = [22, 33] #increasing n by 11, last item must have first digit as a - 1
list7 = [22, 23] #increasing n by 1, last item must have last digit a - 1
list8 = [22, 31] #increasing n by 9, last item must have first digit a - 1

私はこれを始める方法に苦労しています。たぶん、この問題にどのように取り組むかについてのアイデアを私に与えることができますか?

ちなみに、条件が満たされない場合は、nのみがそのリストに含まれます。n = '20'、a = 4と言います:

list3 = [20]

また、これは学校のプロジェクト用であり、リスト項目を含むリスト内のインデックス用です。問題に取り組むためのより良い方法を考えることはできません。

4

1 に答える 1

1

これで始められるはずです:

def lbuild( start, inc, test ):
    rslt = [start]
    while not test(start,inc):
        start += inc
        rslt.append( start )
    return rslt

n = '22'
a = 4

nval = int(n)
print lbuild( nval, -10, lambda(x,y): (x<10 and x>=0) )
print lbuild( nval, 1, lambda(x,y): x%10 == a-1 )
于 2012-05-15T21:26:36.120 に答える