我想提取句子的特定部分。我的问题是我有一个句子列表,每个句子都有不同的格式。例如:
X.y.com
x.no
x.com
y.com
z.co.uk
s.com
b.t.com
如何根据它们的点数分割这些线?如果我希望句子的第二部分有两个点,而句子的第一部分有一个点
答案 0 :(得分:2)
您希望直接位于最后一个点之前的部分;只是分开点并采取一个 - 但最后一部分:
for line in data:
if not '.' in line: continue
elem = line.strip().split('.')[-2]
对于您的输入,它给出了:
>>> for line in data:
... print line.strip().split('.')[-2]
...
y
x
x
y
co
s
t
答案 1 :(得分:0)
我会遵循这个逻辑:
对于每一行:
这应该会为您提供您正在寻找的句子的一部分。
答案 2 :(得分:0)
要回答您的问题,您可以使用count
来计算“。”的次数。出现然后做
无论你需要什么。
>>> 't.com'.count('.')
1
>>> 'x.t.com'.count('.')
2
你可以在循环中使用它:
for s in string_list:
dots = s.count('.')
if dots == 1:
# do something here
elif dots == 2:
# do something else
else:
# another piece of code
解决问题的更多pythonic方法:
def test_function(s):
"""
>>> test_function('b.t.com')
't'
>>> test_function('x.no')
'x'
>>> test_function('z')
'z'
"""
actions = {0: lambda x: x
1: lambda x: x.split('.')[0],
2: lambda x: x.split('.')[1]}
return actions[s.count('.')](s)
答案 3 :(得分:0)
只需使用分割功能。
a = 'x.com'
b = a.split('.')
这将列出b中的2个项目。如果您有两个点,则列表将包含3个项目。该函数实际上根据给定的字符拆分字符串。