Reputation: 49
So a code snipped is below
#Check if inputs is empty, if they are, delete them
if(table_parameters['parameter1'] == " "):
del table_parameter['parameter1']
if(table_parameters['parameter2'] == " "):
del tatble_parameters['parameter2']
if(table_parameters['parameter3'] == " "):
del table_parameters['parameter3']
if(table_parameters['parameter4'] == " "):
del table_parameters['parameter4']
It checks if a part of table_parameters(dictionary) is empty, if it is, it deletes that variable. How could I make this more effective to the point of not having to hardcode ALL these checks? I sometime want to scale it up to like 9 optional(1 being required) but think there has to be some kind of way to not have to hardcode 20 lines just for a simple check as this. A bigger portion of my codebase is below
import sqlite3
db_name = input("Enter wanted name of database: ") + ".db"
table_name = input("Enter wanted name of table: ")
table_parameters = {
"parameter1": input("enter 1.st here: "),
"parameter2": input("enter 2.nd here: "),
"parameter3": input("Enter 3rd: "),
"parameter4": input("Enter 3rd: "),
"parameter5": input("Enter 3rd: "),
"parameter6": input("Enter 3rd: "),
"parameter7": input("Enter 3rd: "),
"parameter8": input("Enter 3rd: "),
"parameter9": input("Enter 3rd: "),
"parameter10": input("Enter 3rd: "),
}
#Check if inputs is empty, if they are, delete them
if(table_parameters['parameter1'] == " "):
del table_parameter['parameter1']
if(table_parameters['parameter2'] == " "):
del tatble_parameters['parameter2']
if(table_parameters['parameter3'] == " "):
del table_parameters['parameter3']
if(table_parameters['parameter4'] == " "):
del table_parameters['parameter4']
conn = sqlite3.connect(f"{db_name}")
Upvotes: 0
Views: 54
Reputation: 116
One possible option is, e.g., first define, what is empty
empty_values = ["", " ", None]
Then you could check the values of your dict against this list of possible empty values:
for key, value in table_parameters.keys():
if value in empty_values:
del table_parameters[key]
Edit: added .keys() according to Reti43
Upvotes: 0
Reputation: 2343
Make a new dicttionary by iterating on all values or use dict comprehensions.
>>> table_parameters = {1:10, 2:None, 3:30, 4: ' '}
>>> table_parameters = {x:y for x,y in table_parameters.items() if y is not None and y != ' '}
>>> table_parameters
{1: 10, 3: 30}
>>>
Upvotes: 1