2016-02-02 20 views
3

我正在使用Python,我試圖弄清楚如何確定列表中的所有數字是否相同或不同(即使只有一個整數不同),如果事先不知道元素的總數在列表中。最初我寫了這樣的東西:如果列表長度未知(Python),如何確定列表中的所有數字是相同還是不同?

def equalOrNot(lst): 
    if sum(lst)%len(lst)==0: 
     return False 
    else: 
     return True 

但它並不適用於所有情況。有什麼建議麼? 謝謝

+0

檢查重複後,你的做法並不適用於所有情況下工作,例如'LST = [1,2,3]' – Jaco

+0

你的解決方案應該將'總和(LST)'是多失敗'len(lst)'和所有數字不相等。 – pydev

回答

2

當然。您可以使用內置的all()

all(numbers[0] == number for number in numbers) 
7

使用set

if len(set(lst)) == 1: 
1

使用此:

def equalOrNot(lst): 
    for item in lst[1:]: 
     if item != lst[0]: 
      return False 

    return True 

或者只是做:

lst[::-1] == sorted(lst) 
+0

如果lst已經排序,則你的第二個命題不起作用。 – cromod

+1

@cromod缺少'[:: - 1]',謝謝。 – pydev

1
if lst.count(lst[0]) == len(lst): 

if lst.reverse() == lst.sort(): 
相關問題