Mam małą zagnieżdżoną listę, taką jak ta ["['95', '66', '137', '70', '20']"]. Chcę usunąć „ z mojej zagnieżdżonej listy. Jak to zrobić?

2
acoustic python 28 czerwiec 2021, 13:21

5 odpowiedzi

Najlepsza odpowiedź

Możesz użyć wyrażenia regularnego z re.findall

import re

lst = ["['95', '66', '137', '70', '20']"]
lst = re.findall(r'\d+', lst[0])
print(lst) # ['95', '66', '137', '70', '20']
1
Guy 28 czerwiec 2021, 10:31
import re
def return_without_quotes(x):
    y = []
    x = x[0]
    x  =  x.strip(']['' ').split(', ')
    for i in range(len(x)):
        match = re.search('[0-9]+',x[i])
        if match != None:
            y.append(match.group())
    x = [y]

    return x
        

x = ["['95', '66', '137', '70', '20']"]

print(return_without_quotes(x))
0
Milan Hazra 28 czerwiec 2021, 11:41

Taki sam jak Sam, ale bez importu. ( nie wiem, dlaczego import jest potrzebny)

mystr = ["['95', '66', '137', '70', '20']"]
print(eval(mystr[0]))
0
Remus 007 28 czerwiec 2021, 10:32
import ast

ini_list = ["['95', '66', '137', '70', '20']"]
result = []

print(f"ini_list is: {ini_list}")

# Converting string to list
for i in ini_list:
    result.append(ast.literal_eval(i))

# printing final result and its type
print(result)

Wynik

ini_list is: ["['95', '66', '137', '70', '20']"]
['95', '66', '137', '70', '20']
1
arun n a 28 czerwiec 2021, 10:44
import ast 
mystr = ["['95', '66', '137', '70', '20']"]
print(ast.literal_eval(mystr[0]))
3
sam 28 czerwiec 2021, 10:25