0

我正在尝试通过搜索“。”来打印 23.45 和 7.8。在每个字符串中。这是我的代码。

mylist = ["1,23.45,6,7.8","1,25,999"]

tokens =mylist[0].split(',')

for number in tokens :

if re.search('.', number) :

print number ,

结果:1 23.45 6 7.8

4

2 回答 2

2

与往常一样,我建议人们在不需要正则表达式时不要使用正则表达式。在这种情况下,请使用in运算符。

if '.' in number:

替换

if re.search('.', number):

如果你好奇的话,应该是

if re.search('\.', number):
于 2013-10-10T20:21:44.520 回答
1

尝试这个。正则表达式对我来说根本不像 pythonic。

mylist = ["1,23.45,6,7.8","1,25,999"]
tokens =mylist[0].split(',')

for number in tokens :
    if "." in number:   
        print number

但我特别喜欢的看起来并不像pythonic。但我学会了喜欢 lambdas 而不是循环。

mylist = ["1,23.45,6,7.8","1,25,999"]
tokens =mylist[0].split(',')
result = filter(lambda x: "." in x, tokens)
print result
于 2013-10-10T20:20:08.660 回答