Finding Minimum Variable In Python
Solution 1:
If the index number will work, you could do this:
# enter variables
a = 1
b = 2
c = 3
# place variables in list
l = (a,b,c)
# get index of smallest item in list
X = l.index(min(l))
# to print the name of the variable
print(l[X])
X, then, is the index number of the smallest variable (in this case, 0) and can be used as needed, or l[X] could be used to access the variable name.
(But don't use lower case "L" like I did, not usually considered good style 'cuz it can easily be mistaken for upper cas "i" or the number 1).
Solution 2:
Getting the name of any variable is a fraught topic as you can see in How to get a variable name as a string in Python?
However, If one of the solutions in the above answer is acceptable, then you have a dictionary of variable name/value pairs, which you can sort and take the minimum. For example:
vals = {"V1": 1, "V2": 3, "V3": 0, "V4": 7}
sorted(vals.items(), key=lambda t: t[1])[0][0]
>>> 'V3'
Solution 3:
Use the python-varname
package:
https://github.com/pwwang/python-varname
from varname.helpers import Wrapper
v1 = Wrapper(3)
v2 = Wrapper(2)
v3 = Wrapper(5)
v = min(v1, v2, v3, key=lambda x:x.value)
assert v is v2
print(v.name)
# 'v2'
Solution 4:
so you have 2 variables v1 and v2 and want to print v1 is small or v2:
if( v1 > v2 ):
print"v1 =": str(v1)
#or print "v1 is smaller" else:
print"v2 =": str(v2)
if you have a lot of variables then storing them in a dictionary might be a better idea.
Solution 5:
defShowMinValue(listofvalues):
x = float(listofvalues[0])
for i inrange(len(listofvalues)):
if x > float(listofvalues[i]):
x = float(listofvalues[i])
return x
print ShowMinValue([5,'0.1',6,4,3,7,4,1,234,'2239429394293',234656])
returns 0.1
now, to set a variable to it, just put:
variable = ShowMinValue(listOfPossibleNumbers)
of if you want a never-exception version:
defShowMinValue(listofvalues):
try:
x = createdMaxDef(listofnumbers) #Your maximum possible number, or create an max() def to set it. to make it, set that '>' to '<' and rename the methodexcept Exception:
passfor i inrange(len(listofvalues)):
try:
if x > float(listofvalues[i]):
x = float(listofvalues[i])
except Exception:
passreturn x
print ShowMinValue([5,'0.1',6,4,'',3,7,4,1,234,'2239429394293',234656])
returns 2239429394293 ( changing the '>' to '<')
Post a Comment for "Finding Minimum Variable In Python"