list problem...
Rog
rog at pynguins.com
Wed Sep 29 17:50:56 EDT 2010
On Wed, 29 Sep 2010 05:52:32 -0700, bruno.desthuilliers at gmail.com wrote:
> On 29 sep, 14:17, Steven D'Aprano <st... at REMOVE-THIS- cybersource.com.au>
> wrote:
>> On Tue, 28 Sep 2010 20:11:51 +0100, Rog wrote:
>> > On Tue, 28 Sep 2010 11:59:08 -0700, geremy condra wrote:
>>
>> >> On Tue, Sep 28, 2010 at 11:44 AM, Rog <r... at pynguins.com> wrote:
>> >>> Hi all,
>> >>> Have been grappling with a list problem for hours... a = [2, 3, 4,
>> >>> 5,.....]
>> >>> b = [4, 8, 2, 6,.....]
>> >>> Basicly I am trying to place a[0], b[0] in a seperate list IF a[2]
>> >>> and b[2] is present.
>> >>> I have tried sets, zip etc with no success. I am tackling Euler
>> >>> projects with Python 3.1, with minimal knowledge, and having to
>> >>> tackle the language as I progress. Enjoyable frustration :)
>>
>> >> I'm not clear on what your actual problem is, could you restate it?
>>
>> >> It sounds like you want to copy the ith element out of a and b into
>> >> some other list- call it c- when the (i+2)th element meets some
>> >> condition. What's the condition?
>>
>> >> Geremy Condra
>>
>> > The condition is that the i-th element is inverted, but not equal. eg
>> > 4,2 - 2,4 , 34,5 - 5,34 etc.
>> > Hope that is clearer.
>>
>> Clear as mud.
>>
>> Perhaps you should given an example. Given input
>>
>> a = [2, 3, 4, 5, 6, 7]
>> b = [4, 8, 2, 6, 10, 42]
>>
>> what output are you expecting,
>
> AFAICT, the OP expects [2, 4] in this case, but it's not clear what he'd
> expect for let's say:
>
> a = [2, 3, 21, 4, 5, 6, 7]
> b = [4, 8, 22, 2, 6, 10, 42]
>
> (the 'reversed' pair is at i+3, not i+2)
>
> or
>
> a = [0, 2, 3, 4, 5, 6, 7]
> b = [3, 4, 8, 2, 6, 10, 42]
>
> (the first pair is at pos 1, not 0)
>
> or
>
> a = [2, 3, 4, 8, 6, 7]
> b = [4, 8, 2, 3, 10, 42]
>
> (there's a second 'non-reversed/reversed' match at positions resp. 1 & 3)
It is true that I would have needed any 'non-reversed/reversed' pairs,
these would have been the amicable pairs I was looking for.
The method to recognise them eluded me. Eyes are not good enough :)
I have now joined Python-List and will follow the correct route.
I have used a method suggested that has made the problem redundant,
though it will bug me from now on.
g = []
def divsum(n):
return sum(i for i in range(1, n) if not n % i)
for x in range(10000, 2, -1):
c = divsum(x)
v = divsum(c)
if v == x and v != c:
g.append(divsum(x))
else:
continue
print(sum(g))
--
Rog
http://www.rog.pynguins.com
More information about the Python-list
mailing list