Python: разделение строки, разделение по переменным - PullRequest
0 голосов
/ 23 сентября 2018

Я пытаюсь написать функцию, которая позволит мне передать строку и символ для разбивки строки.

Это, очевидно, работает:

def delimit(inputValue, splitChar):
   splitValue = [x.strip() for x in inputValue.split(',')]
   print(splitValue)

delimit('100,    200,300   ,400,500',',')

Печать этого:

['100', '200', '300', '400', '500']

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

def delimit(inputValue, splitChar):
    splitChar = "'" + splitChar + "'"
    splitValue = [x.strip() for x in inputValue.split(splitChar)]
    print(splitValue)

delimit('100,    200,300   ,400,500',',')

Что возвращает:

['100, 200,300 ,400,500']

Возможно ли использовать переменную внутри split()?Если так, как бы я это сделал?

Ответы [ 3 ]

0 голосов
/ 23 сентября 2018

Да, вы можете использовать переменную для splitChar.
Я думаю, что вас смущают другие языки, где одинарные кавычки обозначают символы, а двойные - строки.В Python нет разницы между одинарными и двойными кавычками.Также нет понятия типа char, только строки из одного символа.

Чтобы ваша функция работала, вам просто нужно удалить строку splitChar = "'" + splitChar + "'", так как это делает вашу строку splitChar равной ',', чтоэто не то, что вы хотите.splitChar уже хранит правильный разделитель ,.

0 голосов
/ 23 сентября 2018

Если вы возьмете splitChar = "'" + splitChar + "'" из вашей функции, она будет работать.Объединение "" "с любой стороны вашего разделенного символа просто добавит" с каждой стороны от вас разделенной строки символов.

0 голосов
/ 23 сентября 2018

Почему вы добавили эту строку splitChar = "'" + splitChar + "'"?Теперь переменная split char содержит ',', которая не отображается нигде в вашей тестовой строке.Таким образом, разделение не может разделить его, как вы хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...