Я пытаюсь написать словарь «switch» в python. Я хочу иметь возможность читать данные из текстового файла и делать разные вещи в зависимости от его типа данных. Так, например, если я читаю в строке, я хочу сравнить ее с другой строкой. Или, если я читаю в поплавке, я хочу сделать с ним некоторые операции. Это операция очистки данных для программы машинного обучения.Используйте словарь python для «switch» on datatype
Возможно, я мог бы сделать это с помощью инструкции If ... Else, но поскольку я мог бы иметь что-то для каждого типа данных, я бы предпочел сделать это чище.
Я использую следующий код:
varX = 2.0
switchDict = {"bool": "boolean", "int": "integer","float": "floatType",
"str": "string"}
switchDict[str(type(varX))]()
def boolean():
print("You have a boolean")
def integer():
print("You have an integer")
def floatType():
print("You have a float")
def string():
print("You have a string”)
Она возвращает:
Traceback (most recent call last):
File "/Gower71/Switch.py", line 5, in <module>
switchDict[str(type(varX))]()
KeyError: "<class ‘float'>"
Если я изменяю switchDict строки:
switchDict = {bool: "boolean", int: "integer", float: "floatType", str: "string"}
switchDict[type(varX)]()
возвращает:
Traceback (most recent call last):
File "/Gower71/Switch.py", line 5, in <module>
switchDict[type(varX)]()
TypeError: 'str' object is not callable
Есть ли способ включить такой тип?
* Я бы предпочел сделать это чище * Я не уверен, что вы пытаетесь сделать, можно назвать более чистым ;-) –
О ... Я просто пытаюсь написать программу, которая строит матрицу несходства для смешанных типов данных. Идея основана на документе Дж. С. Гауэра с 1971 года. И я уверен, что все мои коды на Python могут быть более чистыми ... –