0

嘿,这可能是一个简单的问题,但我已经被它难住了一段时间=/

我有一个字符串 A:

A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')

以及相应的列表 B,它显示字符串 A 的内括号内每个值的确切位置:

B = [12 13 14 15 16 17 18 19 20 21 22 23]

我想创建一个新列表,列表 C,它打印字符串 A 括号内的值,字符串 A 由列表 B 中的数字定义。

谢谢您的帮助!

编辑:我的目标是创建一个仅打印内括号内内容的列表,如下所示:

C = ('C:0.3,D:0.4')

然后我将在逗号处拆分,并将相应的 2 个字符串输入到我定义的另一个函数中,但现在,我只需要列表 C

4

3 回答 3

2
>>> A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')
>>> B = [12 ,13, 14 ,15, 16, 17, 18, 19 ,20 ,21, 22, 23]
>>> C=[A[x] for x in B]
>>> C
['(', 'C', ':', '0', '.', '3', ',', 'D', ':', '0', '.', '4']

编辑:

>>> A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')
>>> C=A[A.find('('):A.find(')')+1]
>>> C
'(C:0.3,D:0.4)'
于 2012-06-28T14:22:03.547 回答
0

假设这B确实是一个列表,

看来你真的只需要B[0]B[-1]为此:

print A[B[0]:B[-1]+1]

或作为列表:

list_of_chars=list(A[B[0]:B[-1]+1])

如果在任何时候,B都不是顺序的(如果B也是顺序的也可以):

list_of_chars=[A[i] for i in B]

会给你字符列表...

于 2012-06-28T14:22:32.877 回答
0

一个简单的列表推导可以解决这个问题:

C = [A[i] for i in B]
于 2012-06-28T14:26:07.897 回答