在Python中获取列表的下一个元素

在Python中获取列表的下一个元素,python,list,Python,List,我有一个句子列表,如: lst = ['A B C D','E F G H I J','K L M N'] 我所做的是 l = [] for i in lst: for j in i.split(): print(j) l.append(j) first = l[::2] second = l[1::2] [m+' '+str(n) for m,n in zip(first,second)] 我得到的结果是 lst = ['A B', 'C D'

我有一个句子列表,如:

lst = ['A B C D','E F G H I J','K L M N']
我所做的是

l = []
for i in lst:
    for j in i.split():
        print(j)
        l.append(j) 

first = l[::2]
second = l[1::2]

[m+' '+str(n) for m,n in zip(first,second)]
我得到的结果是

lst = ['A B', 'C D', 'E F', 'G H', 'I J', 'K L', 'M N']
我想要的输出是:

lst = ['A B', 'B C','C D','E F','F G','G H','H I','I J','K L','L M','M N']
我正在努力思考如何实现这一目标

nested = []
for item in lst:
    item = (' '.join(item).split())
    for ix in range(len(item) - 1):
        nested.append(' '.join(item[ix:ix + 2]))

print (nested)
输出:

['A B', 'B C', 'C D', 'E F', 'F G', 'G H', 'H I', 'I J', 'K L', 'L M', 'M N']

您的问题是,当您只想将内部元素划分给后续的夫妇时,您正在将整个列表展平并划分给夫妇。因此,我们将分别对每个元素执行操作:

lst=['abcdd','efghij','klmn']
res=[]
对于lst中的s:
sub_l=s.split()
对于范围内的i(len(sub_l)-1):
res.append(“{}{}.”格式(sub_l[i],sub_l[i+1]))
打印(res)
给出:

['A B', 'B C', 'C D', 'E F', 'F G', 'G H', 'H I', 'I J', 'K L', 'L M', 'M N']

首先将字符串列表格式化为列表,然后按
zip
进行映射

i = [i.split() for i in lst]

f = [f"{x} {y}" for item in i for x,y in zip(item,item[1::])]

print (f)

#['A B', 'B C', 'C D', 'E F', 'F G', 'G H', 'H I', 'I J', 'K L', 'L M', 'M N']

下面是一个使用Regex的方法:

import re
lst = ['A B C D','E F G H I J','K L M N']
result = re.findall(r'(?=(\b\w+?\b \b\w+?\b))', str(lst))
print(result)
输出:

['A B', 'B C', 'C D', 'E F', 'F G', 'G H', 'H I', 'I J', 'K L', 'L M', 'M N']

@Tomerikoo是正确的,输出略有不同,我和@ncica做的是一样的。您可能需要添加一些
if
条件,以不附加几个元素+1。如果将
i
替换为第一个列表理解本身(虽然当前代码可读性更好),那么
[x代表x在i.split(“”)
中可能只是
i.split()
。。。好办法+1@Tomerikoo你是对的。习惯的力量总是写我拆分的内容:)我指的是整个列表理解,因为
split
已经返回了一个列表,而不是生成器或其他东西。。。我相信这会让它更容易阅读。如果我可以的话,它会是+2:)
[I代表map中的x(lambda x:x.split(“”),lst)代表map中的I(“”。join,zip(x[:-1],x[1:])]
你试过我的答案了吗?它比公认的短如果在两个位置都用
替换
::2
,那么您的解决方案已经正确了。答案是HNKS…是的,我已经尝试过了,但它不起作用。它只给出两个单词的最后一个和第一个值…列表中的每个单词都是实际单词,而不是字母表。@jamesjoyce我已经编辑过了,所以现在就可以了。@jamesjoyce这对文字很有用。请在以后的问题中更具体一些,因为你没有提到这将是文字而不仅仅是字母。