从给定索引拆分后连接python数组

时间:2014-05-05 18:47:39

标签: python django string join split

我有一个名为line的python字符串,我已经拆分了。 line是一个重复的字符串。我正在搜索excel文件并打印出包含特定单词的每一行,我将其称为search,这是用户输入的术语。如果line不包含search,则表示不会打印。

我拆分line,并打印出search_indexline中搜索字词的索引)。

s=line.split()
search_index = s.index(search) if inflected in s else "not in this line"
print(search_index)

如果该行中不存在,那么日志会说"不在这一行"而不是一个数字,因为它崩溃了,我没有包含它。

我想要做的就是将这个分裂重新加入,但是从搜索范围为中间的范围内。所以,像

new_line=[search_index - 5:search_index + 5]

但不确定这是否正确,因为它在网页上给我一个错误"语法无效"

如何正确完成?

2 个答案:

答案 0 :(得分:1)

当你获得列表的属性时,你总是需要在调用它之前输入列表的名称:

>>> line = 'hello world!'
>>> search_index = 3
>>> [search_index-3:search_index+3]
  File "<stdin>", line 1
    [search_index-3:search_index+3]
                   ^
SyntaxError: invalid syntax
>>> line[search_index-3:search_index+3]
'hello '
>>> 

因此,请使用new_line = [search_index-5:search_index+5]

,而不是new_line = line[search_index-5:search_index+5]

这是另一个例子:

>>> line = 'Hello this is django on python'
>>> line = line.split()
>>> search_index = line.index('django')
>>> new_line = [search_index - 2:search_index + 2]
  File "<stdin>", line 1
    new_line = [search_index - 2:search_index + 2]
                                         ^
SyntaxError: invalid syntax
>>> new_line = line[search_index - 2:search_index + 2]
>>> new_line
['this', 'is', 'django', 'on']
>>> 

答案 1 :(得分:1)

我认为你有一个拼写错误(在你的范围line之前遗漏[:]),但还有另一件事。如果您的search_index已分配了字符串,则无法减去或添加5。

我不确定上下文,因此您必须根据自己的需要进行调整,但这可以解决这些问题:

s=line.split()
if inflected in s:
    search_index = s.index(search)
    new_line = line[search_index-5:search_index+5]
else:
    print("not in this line")