[英]Concatenate single elements in python list
我有一個這樣的嵌套列表:
lst =[['Start двигаться', 'другая сторона света', 'надолго скоро'],
['Start двигаться', 'другая сторона света', 'чтобы посмотреть'],
['Start двигаться', 'новая планета'],
['Start двигаться', 'сторона признание', 'суверенитет израильский'],
['Start двигаться', 'сторона признание', 'высот', 'на'],
['Start двигаться', 'сторона признание', 'высот', 'оккупировать'],
['Start двигаться', 'сторона признание', 'высот', 'Голанский'],
['Start двигаться', 'сторона признание', 'и']]
我需要檢查最后一個元素是否為單個單詞,如果是,請將其與上一個元素連接起來。 所需的輸出:
[['Start двигаться', 'другая сторона света', 'надолго скоро'],
['Start двигаться', 'другая сторона света', 'чтобы посмотреть'],
['Start двигаться', 'новая планета'],
['Start двигаться', 'сторона признание', 'суверенитет израильский'],
['Start двигаться', 'сторона признание', 'высот на'],
['Start двигаться', 'сторона признание', 'высот оккупировать'],
['Start двигаться', 'сторона признание', 'высот Голанский'],
['Start двигаться', 'сторона признание и']]
到目前為止,我考慮過檢查最后一個元素是否包含空格:
for i in lst:
for j in i:
if " " not in j[-1]:
do smth
但是我不確定這是正確的方法。 任何幫助,將不勝感激!
您走在正確的軌道上,但不需要第二循環:
for sublist in lst:
if ' ' not in sublist[-1]:
# merge the last two elements
text = '{} {}'.format(sublist[-2], sublist.pop())
sublist[-1] = text
# result:
# [['Start двигаться', 'другая сторона света', 'надолго скоро'],
# ['Start двигаться', 'другая сторона света', 'чтобы посмотреть'],
# ['Start двигаться', 'новая планета'],
# ['Start двигаться', 'сторона признание', 'суверенитет израильский'],
# ['Start двигаться', 'сторона признание', 'высот на'],
# ['Start двигаться', 'сторона признание', 'высот оккупировать'],
# ['Start двигаться', 'сторона признание', 'высот Голанский'],
# ['Start двигаться', 'сторона признание и']]
您可以使用拆分功能檢查其是否為單個單詞。 如果使用split函數,您甚至可以檢查是否也有帶有tabs(\\ t)的字符串。
for ele in lst:
if len(ele[-1].split())==1:
new = ele[-2]+" "+ele[-1]
del ele[-2:]
ele.append(new)
一種方法可能是嘗試使用list comprehension
,如下所示:
[item[:-2]+ [' '.join(item[-2:])]
if len(item[-1].split()) == 1 else item for item in lst ]
它在內部列表中查找最后一項,調用split
並檢查長度。 如果length為1,則它將占用其余元素(最后2個除外),並最后加入列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.