Python: может ли переменная принимать две разные строки?

#python #string #variables

#python #строка #переменные

Вопрос:

Я здесь тупой?

Я хотел бы знать, вызван ли у меня список cons=['gps-ops', 'beidou'] , и в моем коде есть разные имена для одного и того же. т.е.: 'gps-ops' = 'GPS' и 'beidou'='BDS' .

Некоторые части кода (класса) принимают ‘gps-ops’, а некоторые части принимают ‘GPS’. На данный момент я использую if elif операторы and в разных разделах кода.

Есть ли способ сказать, что «gps-ops» также является «GPS» и наоборот, в зависимости от того, как пользователь вводит строку по всему коду?

Комментарии:

1. 'gps-ops' и 'GPS' являются двумя разными строками. таким == образом, оператор сравнения завершится ошибкой. Вам нужно добавить or проверку в свои операторы if, if (var == 'gps-ops') or (var == 'GPS') чтобы достичь того, чего вы хотите.

Ответ №1:

Вы могли бы поместить каждое слово для каждого допустимого имени в набор like {'gps-ops', 'GPS'} , а затем просмотреть свой список в цикле for и проверить, есть ли это слово в наборе:

 gps_set = {'gps-ops', 'GPS'}
for name in cons:
  if name in gps_set:
     # do somehthing if true
 

Прочитайте документы python для наборов, они представляют собой довольно удивительную структуру данных