Python 如何修剪列表中的特定元素?

Python 如何修剪列表中的特定元素?,python,list,Python,List,我在这里有一个列表,它表示拆分后文件中的一行: ['[0.111,', '-0.222]', '1', '2', '3'] 我试图删掉第一个元素中的“[”和“,”以及第二个元素中的“]”。我该怎么做?我已经在这里开始了思考过程,但这段代码不起作用: for line in file: line = line.split() line[0] = line[1:-1] line[1] = line[0:-1] print(line2) 您可以使用replace删除

我在这里有一个列表,它表示拆分后文件中的一行:

['[0.111,', '-0.222]', '1', '2', '3']
我试图删掉第一个元素中的“[”和“,”以及第二个元素中的“]”。我该怎么做?我已经在这里开始了思考过程,但这段代码不起作用:

for line in file:
    line = line.split()
    line[0] = line[1:-1]
    line[1] = line[0:-1]
    print(line2)

您可以使用
replace
删除括号:

 lst = ['[0.111,', '-0.222]', '1', '2', '3']

 lst2 = [x.replace('[','').replace(']','') for x in lst]

 print(lst2)
输出

['0.111,', '-0.222', '1', '2', '3']
你还可以更具体地说:

lst2 = [x[1:] if x[0] == '[' else x[:-1] if x[-1] == ']' else x for x in lst]

您可以使用
re.sub

from re import sub

s = '[0.111, -0.222] 1 2 3'
s = sub('[\[\]]', '', s)
print(s.split())
输出:

['0.111,', '-0.222', '1', '2', '3']
['0.111', '-0.222', '1', '2', '3']
如果您还想删除逗号,您可以

from re import sub

s = '[0.111, -0.222] 1 2 3'
s = sub('[\[\],]', '', s)
print(s.split())
输出:

['0.111,', '-0.222', '1', '2', '3']
['0.111', '-0.222', '1', '2', '3']

您可以使用以下函数仅过滤每个字符串的数字部分:

def clean(字符串):
仅def数值(c):
返回c.isdigit()或c='-'或c='.'
返回列表(映射(lambda s:“”.join(筛选器(onlyNumeric,s)),字符串))
然后你的例子(和许多其他奇怪的事情)就可以解决了

>>> clean(['[0.111,', '-0.222]', '1', '2', '3'])
['0.111', '-0.222', '1', '2', '3']

堆栈溢出不是为了替换现有的教程和文档。这是基本的字符串处理。请提供预期的。显示中间结果与预期结果的偏差。我们应该能够将单个代码块粘贴到文件中,运行它,并重现您的问题。您发布的代码无法运行,并且您的赋值语句似乎不打算做任何有用的事情,用列表的其余部分替换一个列表元素。请重新阅读有关列表和字符串的教程。有关更多帮助,请阅读python常规回归。