On 1/8/19 2:31 PM, Tobiah wrote:> On 1/8/19 9:20 AM, Alister wrote:
>> On Tue, 08 Jan 2019 17:15:17 +0000, Alister wrote:
>>
>>> On Tue, 08 Jan 2019 16:48:58 +0200, Serhiy Storchaka wrote:
>>>
>>>> 08.01.19 11:07, Peter Otten пише:
>>>>> Bob van der Poel wrote:
>>>>>
>>>>>> I need to see if all the items in my list are the same. I was using
>>>>>> set()
>>>>>> for this, but that doesn't work if items are themselves lists. So,
>>>>>> assuming that a is a list of some things, the best I've been able to
>>>>>> come up with it:
>>>>>>
>>>>>>       if a.count( targ ) == len(a):
>>>>>>
>>>>>> I'm somewhat afraid that this won't scale all that well. Am I missing
>>>>>> something?
>>>>>
>>>>> a[1:] == a[:-1]
>>>>>
>>>>> :)
>>>>>
>>>>>
>>>> Very clever! It is definitely the shortest solution.
>>>
>>> would that still not return true if the list was a palindrome?
>> ignore me, just tried & ok
>>
>
> You were right the first time.  The above comparison should have been
>
>      a == a[::-1]
>
> A palindrome will pass.

Let's find out (vertical space added for clarity):

    Python 3.7.2 (default, Dec 29 2018, 21:15:15)
    [GCC 8.2.1 20181127] on linux
    Type "help", "copyright", "credits" or "license" for more information.

    >>> a = [1, 1, 1, 1, 1]
    >>> a[1:] == a[:-1]
    True
    >>> a == a[::-1]
    True

    >>> a = [1, 2, 3, 4, 3, 2, 1]
    >>> a[1:] == a[:-1]
    False
    >>> a == a[::-1]
    True

Looks like Peter's pretty clever after all.  :-)

Dan
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to