Попробуйте, если my_string = '[[4.6, 4.3, 4.3, 85.05], [8.75, 5.6, 6.6, 441.0], [4.6, 4.3, 4.3, 85.9625]]'
:
import ast
my_string = " ".join(["x".join([str(k) for k in i[:-1]]) for i in ast.literal_eval(my_string)])
last_item = " ".join([str(k[-1]) for k in ast.literal_eval(my_string)])
ОБНОВЛЕНИЕ :
По вашему вопросу my_string = '[[4.6, 4.3, 4.3, 85.05], [8.75, 5.6, 6.6, 441.0] [4.6, 4.3, 4.3, 85.9625]]'
. Если вы собираетесь использовать это как my_string
, попробуйте это:
my_string = " ".join(["x".join([str(k) for k in i[:-1]]) for i in [i.replace(",","").split() for i in my_string.replace("[","").split("]") if len(i) >1]])
last_item = " ".join([str(k[-1]) for k in [i.replace(",","").split() for i in my_string.replace("[","").split("]") if len(i) >1
Во втором случае мы сначала делаем my_string.replace("[","")
, что приводит к '4.6, 4.3, 4.3, 85.05], 8.75, 5.6, 6.6, 441.0] 4.6, 4.3, 4.3, 85.9625]]'
. Теперь мы разбиваем их на .split("]")
, что приводит к ['4.6, 4.3, 4.3, 85.05', ', 8.75, 5.6, 6.6, 441.0', ' 4.6, 4.3, 4.3, 85.9625', '', '']
. Нам нужно удалить элементы, которые являются просто пустой строкой, поэтому мы включаем if len(i) >1
часть в понимание списка. Теперь мы получаем ['4.6, 4.3, 4.3, 85.05', ', 8.75, 5.6, 6.6, 441.0', ' 4.6, 4.3, 4.3, 85.9625']
. Нам нужно убрать запятые в строковых элементах списка. Таким образом, для каждого элемента в этом списке мы делаем .replace(",","")
, а затем следует .split()
, что теперь приводит к [['4.6', '4.3', '4.3', '85.05'], ['8.75', '5.6', '6.6', '441.0'], ['4.6', '4.3', '4.3', '85.9625']]
. Теперь для каждого подсписка мы берем элементы до последнего и делаем "x".join()
и присваиваем my_string
. Взяв этот список, мы можем добавить все последние элементы с помощью " ".join()
и присвоить их переменной last_item
.