Python-条件分割行

Python-条件分割行,python,Python,Python 2.4.x 我有一系列我正在阅读的行-重新排列,然后将每一行放入一个嵌套在另一个列表中的列表中 我有以下几点 testposition = (22, 3, 1, 2, 18, 19, 5, 6, 8, 9, 12, 23, 24, 25, 26, 27, 28) def giveme(s, words=()): lista = s.split() return [lista[item-1] for item in words] for rec in testli

Python 2.4.x

我有一系列我正在阅读的行-重新排列,然后将每一行放入一个嵌套在另一个列表中的列表中

我有以下几点

testposition = (22, 3, 1, 2, 18, 19, 5, 6, 8, 9, 12, 23, 24, 25, 26, 27, 28)

def giveme(s, words=()):
    lista = s.split()
    return [lista[item-1] for item in words]

for rec in testline:
    testlist.append(giveme(rec, testposition))
换句话说,如果正在传递的rec为

Lorem ipsum dolor sit amet consectetur adipiscing elit In vitae neque nec magna tristique ornare Cras faucibus risus eu odio pharetra interdum Nunc dui mi rhoncus ut aliquet
那么这一行的列表将是。(重新安排后)。(此列表将附加到另一个列表-嵌套列表)

它做得非常好。但是我想做的是把最后6个像这样分组

['interdum', 'dolar', 'Lorem', 'ipsum', 'risus', 'eu', 'amet', 'consectetur', 'elit', 'In', 'nec', 'Nunc dui mi rhoncus ut aliquet']
如果所传递的行没有28个元素,但只有25个元素,那么它只会将第22个元素之外的元素分组(文本不是一行接一行)

i、 e上面的例子有28个元素,这个有25个

知识产权是一种权利,是一种权利,是一种权利,是一种权利,是一种权利,是一种权利,是一种权利,是一种权利,是一种权利

由此产生的清单将是:

['interdum', 'dolar', 'Lorem', 'ipsum', 'risus', 'eu', 'amet', 'consectetur', 'elit', 'In', 'nec', 'Nunc dui mi']
希望这是清楚的-有什么想法吗

谢谢。

使用:


假设在任何一行中,您只想重新排列前22个单词: 可以使用序列切片仅选择要重新排列的零件:

testposition = (22, 3, 1, 2, 18, 19, 5, 6, 8, 9, 12)

def giveme(s, words=()):
    lista = s.split()
    maxpos = max(testposition)
    return [lista[item-1] for item in words[:maxpos]] + words[maxpos:]

for rec in testline:
    testlist.append(giveme(rec, testposition))

如果向提供可选的第二个参数,则可以控制执行的拆分次数:

testposition = (22, 3, 1, 2, 18, 19, 5, 6, 8, 9, 12, 23)

def giveme(s, words=()):
    lista = s.split(' ',22)
    result=[lista[item-1] for item in words]
    return result

rec='Lorem ipsum dolor sit amet consectetur adipiscing elit In vitae neque nec magna tristique ornare Cras faucibus risus eu odio pharetra interdum Nunc dui mi rhoncus ut aliquet'
print(giveme(rec, testposition)[-1])
屈服

'Nunc dui mi rhoncus ut aliquet'
'Nunc dui mi'

屈服

'Nunc dui mi rhoncus ut aliquet'
'Nunc dui mi'

在换位矩阵的末尾,唯一的方法是连续运行吗?
'Nunc dui mi'