Python, проверьте, все ли элементы массива одинаковые или нет - PullRequest
2 голосов
/ 19 июня 2020

У меня есть массив, скажем [4 4 4 4 4], здесь длина 5. В действительности это может быть 300. Как проверить, все ли элементы одинаковы, скажем, в этом случае все 4. Если все элементы имеют одинаковое значение, функция возвращает true, иначе false. Элемент может быть только целым числом, а значение может быть любым из них: 0,1,2,3,4.

Я мог бы использовать al oop в Python следующим образом. Но я ищу краткий или простой способ сделать это, скажем, одной строкой.

x= [4,4,4,4]
temp = x[0]

for ele in x:
    if(temp != ele):
        false
     true

Ответы [ 2 ]

3 голосов
/ 19 июня 2020

может быть более эффективным не перебирать весь список (как и конструктор set), а останавливаться на первом элементе, который не равен x0. all сделает это за вас:

x = [4,4,4,4]
x0 = x[0]

print(all(item == x0 for item in x))
# True

это практически та же версия, что и у вас; только l oop будет намного более эффективным таким образом.

также обратите внимание, что true и false не являются действительными идентификаторами python. в python это True и False.

3 голосов
/ 19 июня 2020

Вы можете поместить элементы в set(), а затем проверить, равна ли длина набора 1:

if len(set(x)) == 1:
    print('All elements are same')
else:
    print('Not same')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...