2017-10-16 6 views
-1

l2の開始から最大の数字を取得しようとしましたが、それぞれのペアは減算を2以上にする必要があります。したがってl2 = [2,1,8,3,6,4]の場合、4-3 < 2から4番目に大きい3は取られないので、出力はl1 = [8,6,4]となる。誰もがそれを修正する方法を教えて.Canここでは[8,6]私のコードはForループは2つのステップしか処理できません

l2=[2,1,8,3,6,4] 
l1=[] 
def check():   
    i = max(l2) 
    l2.remove(i) 
    if len(l1)>1: 
     for number in l1: 
      if (abs(number - i)) < int(2): 
       break; 
    else: 
     l1.append(i) 
     check() 

ですが、出力はありますか?

+0

私はあなたのrequirを理解していませんements。 –

+0

'lst'はどこに定義されていますか? –

+0

ご迷惑をおかけして申し訳ございません。まずl2にl2に最大数aを加え、l2bで2番目に大きい場合にa-b> = 2ならばl1にbを加えます。 n-m <2が生じるまでステップを繰り返します。 –

答えて

1

私はあなたが望むものを正確に理解している場合、このです:

l2=[2,1,8,3,6,4] 
l1=[] 
def check(): 
    i = max(l2) 
    l2.remove(i) 
    if len(l1) > 0: 
     for number in l1: 
      if abs(number - i) < 2: 
       return l1 
    l1.append(i) 
    check() 
0

・ホープこれはあなたの問題を解決します。whileない

1 l2 = [2, 1, 8, 3, 6, 4] 
    2 
    3 def generate_l1(l): 
    4  copy = list(l) 
    5  result = [] 
    6  result.append(max(copy)) 
    7  copy.remove(max(copy)) 
    8  while result[len(result) - 1] - max(copy) >= 2: 
    9   result.append(max(copy)) 
10   copy.remove(max(copy))                                     
11  return result 
12 
13 print(generate_l1(l2)) 

機能generate_l1は、与えられたリストlから期待されるリストを作成します元のリストを変更するl2

関連する問題