2013-05-25 102 views
0

繼承人Python代碼技巧編寫乾淨的代碼

def issubset(a,b): i=0 
j=0 
while i < len(a): 
     c = False 
     while j < len(b): 
      if a[i] == b[j]: 
       c = True 
       j = j+1 
      if c: 
       c = False 
      else: 
       return False 
     j=0 
     i = i+1 
return True 

有 一些技巧,可以使上面的代碼更乾淨。

def issubset(a, b): 
    for i in range(len(a)): 
     c = False 
     for j in range(len(b)): 
      c = c or a[i]==b[j] 
      if c: 
       c = False 
      else: 
       return False 
    return True 

它可以更清潔嗎? 我想有像

一些技巧
if condition: 
    <var> = True 

可以

<var> = <var> or condition 

或 更換,如果tempokay ==假: 好=假 可以

okay = okay and tempokay 

更換有還有更多這樣的技巧?

+1

這可能是更適合於codereview.stackexchange – dm03514

+2

@ dm03514也許不是因爲它似乎並沒有工作 – jamylak

+1

'所有(X b中的一個X)'或更好'set(a).issubset(b)'。 –

回答

4

它看起來像你在循環中使用索引來訪問數組成員。這不是pythonic。

通過你的陣列就循環

for member in your_list: 
    for member_two in second_list: 
     pass 
+0

謝謝!那些如果陳述如何?它看起來很麻煩 –