String to Variable Name

Convert string to variable name in python

x='buffalo'    
exec("%s = %d" % (x,2))

After that you can check it by:

print buffalo

As an output you will see:
2

Variable name as a string in Javascript

Typically, you would use a hash table for a situation where you want to map a name to some value, and be able to retrieve both.

var obj = { myFirstName: 'John' };obj.foo = 'Another name';for(key in obj)    console.log(key + ': ' + obj[key]);

Set string to variable name

You can store the data in an object with the keys matching your select's values.

var data = {
basketball: "changeable-string",
handball: 760,
football: null,
baseball: "description: ball-game to play"
}

function myFunction(el) {
console.log(data[el.value])
}
<select name="box" onchange="myFunction(this);">
<option value="football">Football</option>
<option value="handball">Handball</option>
<option value="basketball">Basketball</option>
<option value="baseball">Baseball</option>
</select>

C - Convert string to variable name

This is simply not possible in C.

Check out this question for more details.
How to return a variable name and assign the value of the variable returned in c

To quote Wichert, 'I suggest that you reconsider the problem you are trying to solve and check if there might not be a better method to approach it. Perhaps using an array, map or hash table might be an alternative approach that works for you.'

Convert a String to a Variable name in Python

I just cobbled a quick example to do what you want to do, I do not recommend that you do this, but I will assume that you have a good reason to and will therefore help.

vars = ["a", "b", "c"]
for i in range(len(vars)):
globals()[vars[i]] = (i+1)*10

print(a) # 10
print(b) # 20
print(c) # 30

This example may be a little complicated but it does exactly what you asked for in your question, long story short you can use the globals() function to turn a string into a variable. Link for more info here: https://www.pythonpool.com/python-string-to-variable-name/

Convert string to variable name in JavaScript

If it's a global variable then window[variableName]
or in your case window["onlyVideo"] should do the trick.

Passing string for variable name Python

As others have suggested, you will likely want an answer that uses a dictionary to lookup numbers given letters.

##----------------------
## hardcode your input() for testing
##----------------------
#input_numbers = input()
#input_letters = input()
input_numbers = "5 20 16"
input_letters = "CAB"

input_numbers_list = input_numbers.split(" ")
input_letters_list = list(input_letters) # not technically needed
##----------------------

##----------------------
## A dictionary comprehension
# used to construct a lookup of character to number
##----------------------
lookup = {
letter: number
for letter, number
in zip(
sorted(input_letters_list),
sorted(input_numbers_list, key=int)
)
}
##----------------------

##----------------------
## use our original letter order and the lookup to produce numbers
##----------------------
result = " ".join(lookup[a] for a in input_letters_list)
##----------------------

print(result)

This will give you your requested output of:

20 5 16

There is a lot going on with the construction of the dictionary lookup, so let's unpack it a bit.

First of, it is based on calling zip(). This function takes two "lists" and pairs their elements up creating a new "list". I use "list" in quotes as it is more like iterables and generators. Anyways. let's take a closer look at:

list(zip(["a","b","c"], ["x","y","z"]))

this is going to give us:

[
('a', 'x'),
('b', 'y'),
('c', 'z')
]

So this is how we are going to pairwise combine our numbers and letters together.

But before we do that, it is important to make sure that we are going to pair up the "largest" letters with the "largest" numbers. To ensure that we will get a sorted version of our two lists:

list(
zip(
sorted(input_letters_list), #ordered by alphabet
sorted(input_numbers_list, key=int) #ordered numerically
)
)

gives us:

[
('A', '5'),
('B', '16'),
('C', '20')
]

Now we can feed that into our dictionary comprehension (https://docs.python.org/3/tutorial/datastructures.html).

This will construct a dictionary with keys of our letters in the above zip() and values of our numbers.

lookup = {
letter: number
for letter, number
in zip(
sorted(input_letters_list),
sorted(input_numbers_list, key=int)
)
}
print(lookup)

Will give us our lookup dictionary:

{
'A': '5',
'B': '16',
'C': '20'
}

Note that our zip() technically gives us back a list of tuples and we could also use dict() to cast them to our lookup.

lookup = dict(zip(
sorted(input_letters_list),
sorted(input_numbers_list, key=int)
))
print(lookup)

also gives us:

{
'A': '5',
'B': '16',
'C': '20'
}

But I'm not convinced that clarifies what is going on or not. It is the same result though so if you feel that is clearer go for it.

Now all we need to do is go back to our original input and take the letters one by one and feed them into our lookup to get back numbers.

Hope that helps.



Related Topics



Leave a reply



Submit