Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1088939
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T23:08:39+00:00 2026-05-16T23:08:39+00:00

What is the easiest/most elegant way to do the following in python: def piecewiseProperty(aList):

  • 0

What is the easiest/most elegant way to do the following in python:

def piecewiseProperty(aList):
    result = []
    valueTrue = 50
    valueFalse = 10

    for x in aList:
        if hasProperty(x):
            result.append(valueTrue)
        else
            result.append(valueFalse)

    return result

where hasProperty is some function with boolean return value.

One shorter (but opaque, and possibly less efficient) R-like way to do it would be this

trueIndexSet = set([ ind for ind,x in enumerate(aList) if hasProperty(x) ])
falseIndexSet = set(range(0:len(aList)).difference(trueIndexSet)
vals = sorted( [ (ind,10) for ind in falseIndexSet ] + [ (ind,50) for ind in trueIndexSet ] )
[ x for ind,x in vals]

Another much tidier approach would use dictionary lookup:

[ {True:50, False:10}[hasProperty(x)] for x in aList ]

Is there some clever and readable one-liner or built in function for doing this? It would basically be an if…else list comprehension.

Application of this question:
Just in case it’s of interest, I am using this to assign sizes to nodes in a network so that they are drawn differently. I want to draw nodes named with prefix “small_” size 10 and draw the other nodes size 50. NetworkX and pygraphviz can alter the sizes of the nodes by accepting a list of sizes, one for each node.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T23:08:40+00:00Added an answer on May 16, 2026 at 11:08 pm

    Use a conditional expression (pep-308):

    [50 if hasProperty(x) else 10 for x in alist]
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

What is the easiest or most elegant way to convert a RFC 1123 date
What's the easiest and most robust way of altering the .NET DateTimePicker control, to
What's the easiest way of me converting the simpler regex format that most users
Possible Duplicate: most elegant way to return a string from List<int> I'm not sure
what's the easiest way to take the intersection of N-many lists in python? if
What is the easiest and most efficient way to delete a specific page from
I'm wondering about the correct/easiest/most pythonic way of dealing with subprojects that you want
What is the best (easiest, most seamless) way to build a Java app while
What is the easiest and most efficient way to insert data from a DataTable
I'm looking for the easiest and most sensible way to allow this scenario to

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.