从列表Python系列中获取子字符串

时间:2018-12-17 07:55:45

标签: substring

我有如下数据:

a=[["S(8)"],[],["S(5)",T(3)]]

并且我想在保护形状的同时获得括号之间的整数:

b=[[8],[],[5,3]]

我试图用循环来做,但是没有成功。

numbers=[]
sublist=[]
for y in a:
    for x in y:
        if len(y)==0:
            numbers.append([])
            pass
        elif len(y)>0:
            sublist.append([x[x.find("(")+1:x.find(")")]])
            numbers.append(toplama)
            pass

我也尝试过这个

numbers=[x[x.find("(")+1:x.find(")")] for x in y for y in a]

可以帮我吗?谢谢。

1 个答案:

答案 0 :(得分:0)

尝试以下操作:

import re

# Finds a number (at least 1 digit) in brackets
x = re.compile(r"\(([0-9]+)\)")

# Your input 
a = [["S(8)"],[],["S(5)","T(3)"]]

# The output
b = []

# Loop over list 
for i in a:
    # Append each element list containing converted numbers
    b.append([int(x.findall(j)[0]) for j in i])

print(b)
# Output: [[8], [], [5, 3]]