2016-11-13 23 views
1

我有了一些條件,這將導致跳過當前列表迭代的其他一些源代碼:你會如何抽象這一系列的列表繼續條件?

for name, row in recent.iteritems(): 
    if name in ignore: 
     print name + "is on ignore list. Skipping." 
     continue 

    if number_of_open_orders_in(name) == max_orders_per_market: 
     print name + "has max number of open orders. Skipping." 
     continue 

    if row[0].ask < 100e-8: 
     print name + "is a single or double satoshi coin. Skipping." 
     continue 

    gain.append(
     (
      name, 
      percent_gain(row[0].ask, row[1].ask), 
      row[1].ask, 
      row[0].ask, 
      'https://bittrex.com/Market/Index?MarketName={0}'.format(name), 
     ) 
    ) 

正如你看到的,代碼是非常有規律。每個原因用於跳過

  1. 執行測試作爲rowname
  2. 如果測試返回True
    • 打印的消息
    • 函數跳過當前循環迭代
+1

代碼在哪裏? – Dekel

+1

抽象是什麼意思?你只是想在結構上輸入意思(即,如果我們寫的不同)還是你在尋找別的東西? – pingul

回答

0

以下是c剔除冗餘:

for name, row in recent.iteritems(): 
    if name in ignore: 
     print name + "is on ignore list. Skipping." 

    elif number_of_open_orders_in(name) == max_orders_per_market: 
     print name + "has max number of open orders. Skipping." 

    elif row[0].ask < 100e-8: 
     print name + "is a single or double satoshi coin. Skipping." 

    else: 
     gain.append(
      (
       name, 
       percent_gain(row[0].ask, row[1].ask), 
       row[1].ask, 
       row[0].ask, 
       'https://bittrex.com/Market/Index?MarketName={0}'.format(name), 
      ) 
     )