Example #1
0
def arrayCreate( nNewSize, value = 0 ):
    "create an array of size nNewSize by inserting some value (default 0)"
    newArray = [];
    for i in range( nNewSize ):
        if( not typetools.isArray( value ) ):
            newArray.append( value );
        else:
            #don't want to have a pointer on the list contains in value, but a fresh new array !
            newArray.append( [] );
            newArray[len( newArray) -1].extend( value ); # TODO: .last() ???
    return newArray;
Example #2
0
def arrayCreate(nNewSize, value=0):
    "create an array of size nNewSize by inserting some value (default 0)"
    newArray = []
    for i in range(nNewSize):
        if (not typetools.isArray(value)):
            newArray.append(value)
        else:
            #don't want to have a pointer on the list contains in value, but a fresh new array !
            newArray.append([])
            newArray[len(newArray) - 1].extend(value)
            # TODO: .last() ???
    return newArray
Example #3
0
def chooseOneElem(aList):
    "Pick randomly an element in a list "
    "each list contains elements, and optionnal probability ratio (default is 1)"
    "exemple of valid list:"
    "     'hello' (a non list with only one element)"
    "     ['hello', 'goodbye']"
    "     ['sometimes', ['often',10] ] often will appears 10x more often than sometimes (statistically)"

    # simple case
    if (not typetools.isArray(aList)):
        return aList

    # generate statistic repartition
    listProba = []
    nSum = 0
    for elem in aList:
        if (typetools.isArray(elem) and len(elem) > 1):
            nVal = elem[1]
        else:
            nVal = 1
            # default value
        listProba.append(nVal)
        nSum += nVal
    nChoosen = random.randint(0, nSum - 1)
    #    logToChoregraphe( "nChoosen: %d / total: %d / total different: %d (list:%s)" % ( nChoosen, nSum, len( aList ) , aList ) );
    nSum = 0
    nIdx = 0
    for val in listProba:
        nSum += val
        if (nSum > nChoosen):
            elem = aList[nIdx]
            if (typetools.isArray(elem)):
                return elem[0]
            return elem
        nIdx += 1

    return "not found or error"
Example #4
0
def chooseOneElem( aList ):
    "Pick randomly an element in a list "
    "each list contains elements, and optionnal probability ratio (default is 1)"
    "exemple of valid list:"
    "     'hello' (a non list with only one element)"
    "     ['hello', 'goodbye']"
    "     ['sometimes', ['often',10] ] often will appears 10x more often than sometimes (statistically)"
    
    # simple case
    if( not typetools.isArray( aList ) ):
        return aList;
        
    # generate statistic repartition
    listProba = [];
    nSum = 0;
    for elem in aList:
        if( typetools.isArray( elem ) and len( elem ) > 1 ):
            nVal = elem[1];        
        else:
            nVal = 1; # default value        
        listProba.append( nVal );
        nSum += nVal;
    nChoosen = random.randint( 0, nSum - 1 );
#    logToChoregraphe( "nChoosen: %d / total: %d / total different: %d (list:%s)" % ( nChoosen, nSum, len( aList ) , aList ) );
    nSum = 0;
    nIdx = 0;
    for val in listProba:
        nSum += val;
        if( nSum > nChoosen ):
            elem = aList[nIdx];
            if( typetools.isArray( elem ) ):
                return elem[0];
            return elem;
        nIdx += 1;
        
    return "not found or error";