嘿,这可能是一个简单的问题,但我已经被遗忘了一段时间= /
我有一个字符串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的括号内的值,该字符串由列表B中的数字定义。
感谢您的帮助!
编辑: 我的目标是创建一个列表,只打印内括号内的内容,如下所示:
C = ('C:0.3,D:0.4')
然后我将在逗号处拆分,并将相应的2个字符串输入到我已定义的另一个函数中,但是现在,我只需要列表C
答案 0 :(得分: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)'
答案 1 :(得分: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]
会给你字符列表......
答案 2 :(得分:0)
简单的列表理解可以解决这个问题:
C = [A[i] for i in B]