Python variables as keys to dict
for i in ('apple', 'banana', 'carrot'):
fruitdict[i] = locals()[i]
Use variable as key name in python dictionary
No, there isn't. Also it would be unlikely that such syntax would ever emerge, as the construct
{name}
has been reserved for set
literals.
The other alternative you have is to use the dict
constructor:
d = dict(name=name)
P.S. since dict
is a name that's been defined in the builtins
module, please do not name your variables as dict
.
Dictionary key name from combination of string and variable value
Use a dictionary comprehension with enumerate starting a 1:
ipv4_list = ["192.168.1.2", "192.168.1.3", "192.168.1.4"]
ipv4_dic = {f'IP{n}':ip for n,ip in enumerate(ipv4_list,1)}
print(ipv4_dic)
{'IP1': '192.168.1.2', 'IP2': '192.168.1.3', 'IP3': '192.168.1.4'}
Use variable name as key in dictionary comprehension
Having variables like array1
, array2
... is wrong from the start. Let's suppose that the names are significant names instead.
Then we could use variable names to start with, and look them up in the various variable dictionaries. For instance like this:
import numpy as np
# Make up some data
array1 = np.random.randint(255, size=(4, 4))
array2 = np.random.randint(255, size=(4, 4))
array3 = np.random.randint(255, size=(4, 4))
array4 = np.random.randint(255, size=(4, 4))
# Generate a dict with variable name key and median value
d = {x:np.median(locals().get(x,globals().get(x))) for x in ["array1", "array2", "array3", "array4"]}
>>> d
{'array1': 156.5, 'array2': 76.0, 'array3': 100.0, 'array4': 85.0}
locals().get(x,globals().get(x))
is one way of trying to fetch a variable named x
first in locals then in globals. It will overlook nonlocals (but can be done, it's just an even more complex expression).
If it's possible, I'd advise to store the variables in a dictionary from the start, then getting the result is trivial:
datadict = {}
datadict["array1"] = np.random.randint(255, size=(4, 4))
datadict["array2"] = np.random.randint(255, size=(4, 4))
datadict["array3"] = np.random.randint(255, size=(4, 4))
datadict["array4"] = np.random.randint(255, size=(4, 4))
# Generate a dict with variable name key and median value
d = {k:np.median(v) for k,v in datadict.items()}
Turn the dictionary keys into variable names with same values in Python from .mat Matlab files using scipy.io.loadmat
In python, method parameters can be passed as dictionnaries with the **
magic:
def my_func(key=None):
print key
#do the real stuff
temp = {'key':array([1,2])}
my_func(**temp)
>>> array([1,2])
How to use a variable as dictionary key using f-string in python?
# Following part is working!!!
print(f'Youve selected {languages[option]}')
Related Topics
Get Discord User Id from Username
How to Divide Each Column of Pandas Dataframe by a Series
Why I Get Key Error Even Though Column Present in Pandas
Convert Number Strings With Commas in Pandas Dataframe to Float
How to Map True/False to 1/0 in a Pandas Dataframe
Bold Formatting in Python Console
How to Import a File in Python With Spaces in the Name
How to Remove Name and Dtype from Pandas Output
Find the Item With Maximum Occurrences in a List
Save Variables in Every Iteration of for Loop and Load Them Later
How to Put a Space Between Two String Items in Python
Key Error When Selecting Columns in Pandas Dataframe After Read_Csv
Pandas: How to Assign Values Based on Multiple Conditions for Existing Columns
How to Count the Total Number of Words in a Pandas Dataframe Cell and Add Those to a New Column
Print All Number Divisible by 7 and Contain 7 from 0 to 100
Python Pandas .Isnull() Does Not Work on Nat in Object Dtype