如何在python中替换包含[]的字符串

时间:2018-05-07 16:18:20

标签: python string list

如果我的问题太基础,请原谅我,因为我不熟悉python。

我有一个字符串如下。

Data=['A', 'B', 'C', 'X [7:0] Y', '[3:0] K' ]

我想将其更改为以下格式。

Data=['A', 'B', 'C', 'Y X [7:0]', 'K [3:0]']

在python中有没有办法做到这一点。

2 个答案:

答案 0 :(得分:2)

l=[]
for string in Data:
    if '[' in string:
        l.append(string[string.index(']')+1:].strip()+" "+string[:string.index('[')]+string[string.index('['):string.index(']')+1].strip())
    else:
        l.append(string)
print(l)

输出:

['A', 'B', 'C', 'Y X [7:0]', 'K [3:0]']

答案 1 :(得分:0)

一种方法是使用辅助函数并使用str.split。这可能不是最有效的答案,但它应该让您了解如何构建逻辑。

def mover(x):
    if '[' in x:
        lst = x.split()  # split by whitespace
        idx = next(i for i, j in enumerate(lst) if '[' in j)  # find index
        lst.append(lst.pop(idx))  # move item to end
        return ' '.join(lst)
    else:
        return x

Data = ['A', 'B', 'C', 'X [7:0] Y', '[3:0] K' ]

res = [mover(x) for x in Data]

print(res)

['A', 'B', 'C', 'X Y [7:0]', 'K [3:0]']