如何使用python将字符串拆分为带引号的句子和数字

2024-09-27 19:24:12 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,伙计们,我是python新手,希望能得到一些帮助!在

我有多个这样的字符串:

21357.53 84898.10 Mckenzie Meadows Golf Course 80912.48 84102.38

我正试图找出如何根据一组单词(即"Mckenzie Meadows Golf Course")来拆分这行,并在其周围加上引号和没有引号的双精度。在

然后将字符串重新排列为以下格式:

^{pr2}$

为了重新安排我会用

for row in data:
    outfile.write('{0} {1} {2} {3} {4}'.format(row[2], row[0], row[1], row[3], row[4]))
    outfile.write('\n')

但我不知道怎样才能把一个被引用的句子去掉。谢谢你的帮助!在


Tags: 字符串格式精度单词outfile引号writerow
3条回答

使用正则表达式的代码:

import re

s = '21357.53 84898.10 Mckenzie Meadows Golf Course 80912.48 84102.38'
row = re.search('([0-9.]+)\s([0-9.]+)\s([\w ]+)\s([0-9.]+)\s([0-9.]+)', s)
if row:
    print '"{0}" {1} {2} {3} {4}'.format(row.group(3), row.group(1), row.group(2), row.group(4), row.group(5))

将打印(带双引号):

^{pr2}$

你可以试试这个:

s = "21357.53 84898.10 Mckenzie Meadows Golf Course 80912.48 84102.38"
sList = s.split(' ')
words = []
nums = []
for l in sList:
    if l.isalpha():
        words.append(l)
    elif l.isdigit():
        nums.append(l)

wordString = "\"%s\"" %  " ".join(words)
row = [wordString] + nums

此时,row包含所需的行。在

我就是这样做的:

import re

tgt='21357.53 84898.10 Mckenzie Meadows Golf Course 80912.48 84102.38'

nums=[m.group() for m in re.finditer(r'[\d\.]+',tgt)]
words=[m.group() for m in re.finditer(r'[a-zA-Z]+',tgt)]
print '"{}" {}'.format(' '.join(words),' '.join(nums))

印刷品:

^{pr2}$

或者,您可以测试Python认为是float的内容来找到它们:

nums=[]
words=[]
for e in tgt.split():
    try:
        nums.append(float(e))
    except ValueError:
        words.append(e)

print words,nums       

最后,如果您有4个浮动和一个字符串(float,float,string,float,float)的固定格式,您可以:

li=tgt.split()
nums=' '.join(li[0:2]+li[-2:])
words=' '.join(li[2:-2])
print words,nums

相关问题 更多 >

    热门问题