#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)