Как бы идти о принятии строки:Строка или список подстановки в Python
("h1", "h2", "h3, "h4")
И Подставив эти значения с номерами 1, 2, 3, 4
?
Соответственно, как я мог бы выполнить одну и ту же операцию, кроме как в списке?
Как бы идти о принятии строки:Строка или список подстановки в Python
("h1", "h2", "h3, "h4")
И Подставив эти значения с номерами 1, 2, 3, 4
?
Соответственно, как я мог бы выполнить одну и ту же операцию, кроме как в списке?
to_replace = ["h1","h2","h3","h4"]
replaced = [ int(s.replace("h","")) for s in to_replace ]
Если это то, что вы хотите.
Это не совсем понятно; Я предполагаю, что ваш вход буквально не является строкой "(\"h1\", \"h2\", \"h3\", \"h4\")"
, а содержит список строк.
И я не уверен, что вы имели в виду по второму вопросу, поскольку он кажется таким же, как и первый.
Я буду обновлять мой ответ соответственно =)
To MikeD: Да, в основном это то, что я хочу делать. Чтобы дать некоторый контекст, я пытаюсь перевести R-код на Python, и то, что я пытаюсь сделать, - это построить многомерный массив из 3 строк/списков/все, что содержит 4 элемента в строке/списке. Сначала я предполагаю, что лучше использовать для построения массива: список или строку? Вы должны будете простить мои загадочные описания, потому что я n00b с Python. :) – myClone
Джастину: Прошу прощения за мой непонятный вопрос. Это отчасти потому, что я не уверен, что это за то, что я за ним. У меня есть сценарий R, который я пытаюсь перевести. (Я знаю, что rPy обрабатывает этот материал автоматически, но я пытаюсь изучить Python путем перевода). То, что вы предложили, выглядит близко. В R он читается следующим образом: hClasses <- as.numeric (gsub ("h", "", segmentH)). Я пробовал то, что у вас было, но написал его так: segmentH = ["h1", "h2", "h3", "h4"]
hClasses = [int (s.replace ("h", "")) для s в сегментах H]. Большое спасибо! –
myClone
Это лишит каждый нечисловой символ (не только h
):
>>> s = ["h1", "h2" , "h3" , "h4"]
>>> [int(filter(lambda c: c.isdigit(), x)) for x in s]
[1, 2, 3, 4]
или
>>> s = ["x1", "b2" , "c3" , "h4"]
>>> [int(filter(lambda c: c.isdigit(), x)) for x in s]
[1, 2, 3, 4]
ChristopeD: Спасибо за это альтернативное решение. Это может пригодиться позже в моем сценарии. :) Ценю вашу помощь. – myClone
Вы говорите о string '" (\ "h1", \ "h2 \", \ "h3 \", \ "h4 \") "'? Или список строк? –
Я не совсем уверен, что вы здесь задаете ... Вы хотите просто удалить ведущий «h» из ваших строк? Или у вас длинная строка и вам нужно заменить все экземпляры «h1» на «1»? – MikeD