在List-Python中重新格式化字符串



我有一个列表正在尝试重新格式化。

data = ['Height:n      n      6' 4"', 'Weight:n      n      185 lbs.', 'Reach:n      n      80"', 'STANCE:n      n      Switch', 'DOB:n      n      n        Jul 22, 1989', 'SLpM:n          nn          3.93', 'Str. Acc.:n          n          49%', 'SApM:n          n          2.67', 'Str. Def:n          n          59%', '', 'TD Avg.:n          n          0.00', 'TD Acc.:n          n          0%', 'TD Def.:n          n          78%', 'Sub. Avg.:n          n          0.2']

我试过用脱衣舞。

for info in data:
info.strip('n      n      ')

但是,我仍然得到相同的输出。

我怎样才能删除";\n";在列表的每个索引中。获取以下内容?

data = ['Height: 6' 4"', 'Weight: 185 lbs.', 'Reach: 80"', 'STANCE: Switch', 'DOB: Jul 22, 1989', 'SLpM: 3.93', 'Str. Acc.: 49%', 'SApM: 2.67', 'Str. Def: 59%', '', 'TD Avg.: 0.00', 'TD Acc.: 0%', 'TD Def.: 78%', 'Sub. Avg.: 0.2']

试试这个:

import re
def remove_multiple_ws(s: str) -> str:
return re.sub(r"s+", " ", str(s))

data = [remove_multiple_ws(s) for s in data]

下面是我的方法:用冒号和空格替换冒号和以下空格:

import re
pattern = re.compile(r":s*")
new_data = [
pattern.sub(": ", datum)
for datum in data
]

new_data变为:

['Height: 6' 4"',
'Weight: 185 lbs.',
'Reach: 80"',
'STANCE: Switch',
'DOB: Jul 22, 1989',
'SLpM: 3.93',
'Str. Acc.: 49%',
'SApM: 2.67',
'Str. Def: 59%',
'',
'TD Avg.: 0.00',
'TD Acc.: 0%',
'TD Def.: 78%',
'Sub. Avg.: 0.2']

您可以使用re.sub来替换任何重复的空格等。

来自文件:

re.sub(pattern, repl, string, count=0, flags=0)

返回通过用替换repl替换字符串中最左边不重叠的模式而获得的字符串。如果找不到模式,则返回的字符串将保持不变。

这是re.sub在这种情况下使用的一种方式:

>>> import re
>>> mystring = ' string    string tnn string'
>>> pattern = re.compile(r's+')
>>> pattern.sub(" ", mystring)
'string string string'

使用这种方法,代码的实现看起来像这样:

pattern = re.compile(r"s+")
new_data = [pattern.sub(" ",part) for part in data]

以下是new_data应该是什么:

kali@kali:~$ python3 test.py -i
>>> new_data
['Height: 6' 4"',
'Weight: 185 lbs.',
'Reach: 80"',
'STANCE: Switch',
'DOB: Jul 22, 1989',
'SLpM: 3.93',
'Str. Acc.: 49%',
'SApM: 2.67',
'Str. Def: 59%',
'',
'TD Avg.: 0.00',
'TD Acc.: 0%',
'TD Def.: 78%',
'Sub. Avg.: 0.2']

如果你想了解更多关于python中regex的信息,这里有一些有用的链接:

  • 官方文件
  • 关于regex的谷歌开发者页面
  • w3school regex python
  • programiz-python-regex及其示例