Как заменить жало с помощью python

#python

Вопрос:

Я хочу заменить строку («Нет») на NULL без кавычек.

Например:

 data = ('a','None','1','None')  

И желаемый результат:

 result = "'a', NULL, '1', NULL"   

Есть ли способ получить ожидаемый результат? Заранее спасибо!!

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

1. Что такое NULL ? это переменная в вашем коде (она не существует в python)? Или ты имел в виду None ?

2. @SergeBallesta согласился, но вопрос изменился. в первом вопросе это была не строка, а кортеж с NULL символом в нем.

Ответ №1:

Вы можете использовать join для построения результирующей строки:

 data = ('a','None','1','None') t = ', '.join('NULL' if t == 'None' else repr(t) for t in data)  

t затем идет строка "'a', NULL, '1', NULL" .

Но я действительно не могу представить себе реальный вариант использования для этого…

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

1. Этот ответ работает для меня. Спасибо!!

Ответ №2:

NULL не является допустимым ключевым словом в Python. Вместо этого вы используете None . Кроме того, вы не можете изменить кортеж.

Однако, если вы используете список,;

 data[1] = None  

Ответ №3:

Используйте понимание генератора вместе с tuple() функцией:

 data = ('a', 'None', '1', 'None')  # For NULL without quotes result = tuple(el if el is not 'None' else NULL for el in data)  # 'NULL' with quotes result = tuple(el if el is not 'None' else 'NULL' for el in data)  

Если вы хотите, чтобы ваш конечный результат представлял собой строку значений, разделенную запятыми, используйте это:

 # Replace 'NULL' with NULL if you want to reference the variable new_result = ', '.join(el if el is not 'None' else 'NULL' for el in data)