2016-03-28 38 views
-1

Ben bir projenin bu bir kısmı ile sorun yaşıyorum oluşturursa kontrol eden bir fonksiyon nasıl tanımlanır:boole verilen liste bir kare

is_square(board): Booleans listelerinin listesi olarak bir kurul göz önüne alındığında, 'un aynı sayıda satır ve sütun içeren bir kare kartı temsil edip etmediğini kontrol edin. satırlarının hepsinde aynı sayıda öğe bulunmuyorsa veya satır sayısı sütun sayısıyla eşleşmiyorsa, bu işlev False değerini döndürür. Boş tahta kare.

  • board Booleans listelerinin bir listesi varsayalım. Yanlış 2. satır →

  • is_square([[True,False,False],[False,False,False]]) Doğru x 3 sütun →

  • is_square([[True],[False,False],[True,False,False]])

  • is_square([[True,False,False],[False,False,False],[True,False,False]]) Yanlış

birisi bana bu kısmına basit bir cevap yazmak yardım eder misiniz ?

+4

elemanları Boolean olması ... bir açıklama olsa :) –

cevap

2

Burada çok basit bir girişim var:

def is_square(o): 
    # If o is empty, it's a square - that takes care of the True 
    # Otherwise, ensure that each of the elements inside o 
    # contains the same number of elements as o itself. 
    # To do that you just need to compare the length of each element with the length of o 
    total_length = len(o) 
    return all(len(elem) == total_length for elem in o) 

# A somewhat more verbose equivalent would be as follows: 
def is_square(o): 
    total_length = len(o) 
    for elem in o: 
     # If there's any sublist that has a different length from the total, return False and we're done 
     if len(elem) != total_length: 
      return False 
    # Empty lists and anything that made past that loop must be a square 
    return True 

o1 = [[True,False,False],[False,False,False],[True,False,False]] 
o2 = [[True,False,False],[False,False,False]] 
o3 = [[True],[False,False],[True,False,False]] 

for o in o1, o2, o3: 
    print(is_square(o)) 
+1

Beni ona yendi alakasız gibi görünüyor, lol sayesinde düzenleme ! – Signal

+0

Yay yararlı olacaktır – Bahrom

+0

Tüm geri bildirimler için teşekkürler, orijinal sadece bir araya getirdiğim bir şeydi – Bahrom

İlgili konular