python - 在 Python 中连接成对的列表元素

标签 python python-3.x list

我有一个列表:

list_to_transform = [['Start', 'двигаться', 'конгресс', 'сша'],
     ['Start', 'двигаться', 'сторона', 'в'],
     ['Start', 'двигаться', 'сторона', 'признание', 'суверенитет', 'израильский'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'на'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'оккупировать'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'Голанский'],
     ['Start', 'двигаться', 'сторона', 'признание', 'и']]

我需要的是将每两个单词组合成一个字符串,如果剩下一个单词,则将其与前两个单词组合:

result =[['Start двигаться', 'конгресс сша'],
     ['Start двигаться', 'сторона в'],
     ['Start двигаться', 'сторона признание', 'суверенитет израильский'],
     ['Start двигаться', 'сторона признание', 'высот на'],
     ['Start двигаться', 'сторона признание', 'высот оккупировать'],
     ['Start двигаться', 'сторона признание', 'высот Голанский'],
     ['Start двигаться', 'сторона признание и']]

有什么优雅的方法吗?任何帮助将不胜感激!

最佳答案

您可以使用 map('{} {}'.format, lst[::2], lst[1::2]) 将相邻单词连接到一个偶数长度的列表中。剩下的就是处理奇怪的情况并映射到列表的 lsit 上。

lsts = [['Start', 'двигаться', 'конгресс', 'сша'],
     ['Start', 'двигаться', 'сторона', 'в'],
     ['Start', 'двигаться', 'сторона', 'признание', 'суверенитет', 'израильский'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'на'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'оккупировать'],
     ['Start', 'двигаться', 'сторона', 'признание', 'высот', 'Голанский'],
     ['Start', 'двигаться', 'сторона', 'признание', 'и']]


def proc_single(lst):
    # join adjacent words
    res = list(map('{} {}'.format, lst[::2], lst[1::2]))
    # correct for lists with odd length
    if len(lst) % 2:
        res[-1] = '{} {}'.format(res[-1], lst[-1])

    return res

for lst in lsts:
    print(proc_single(lst))

# ['Start двигаться', 'конгресс сша']
# ['Start двигаться', 'сторона в']
# ['Start двигаться', 'сторона признание', 'суверенитет израильский']
# ['Start двигаться', 'сторона признание', 'высот на']
# ['Start двигаться', 'сторона признание', 'высот оккупировать']
# ['Start двигаться', 'сторона признание', 'высот Голанский']
# ['Start двигаться', 'сторона признание и']

关于python - 在 Python 中连接成对的列表元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50471870/

相关文章:

python - 高斯适合 python : Trust Region v/s Levenberg Marquardt 中的直方图数据

python - 自动包装/装饰所有 pytest 单元测试

python - Python 3 如何知道如何 pickle 扩展类型,尤其是 Numpy 数组?

python - 在 Python 中使用分数

r - mapply 和两个列表

python - 将文件读入列表并去除换行符

python - 绘制均值和标准差

Python 请求获取的参数是 ISO 日期时间不起作用

Python 如何校准到特定时间?

javascript - 如何根据 HTML 页面中的用户输入编辑列表