Python 如何将两个不同段落中的行添加到一起?

Python 如何将两个不同段落中的行添加到一起?,python,loops,for-loop,input,Python,Loops,For Loop,Input,我试图找出如何输入两段不同的短句(类似于歌词的结构),然后将它们组合起来。其中一个段落的第一行后面紧跟着另一段的一行,依此类推 大概是这样的: 投入1: 这是一个例子 那是一条跑步路线 论判决 投入2: 我是另一个例子 第段,即 非常相似 输出: 这是一个例子 我是另一个例子 那是一条跑步路线 第段,即 论判决 非常相似 我猜这可以用for循环来完成,但我不确定你会如何抓住这些线,然后把它们一个接一个地放进去。谢谢你的帮助 这怎么样 input1 = """ this is an exam

我试图找出如何输入两段不同的短句(类似于歌词的结构),然后将它们组合起来。其中一个段落的第一行后面紧跟着另一段的一行,依此类推

大概是这样的:

投入1:

这是一个例子
那是一条跑步路线
论判决
投入2:

我是另一个例子
第段,即
非常相似
输出:

这是一个例子
我是另一个例子
那是一条跑步路线
第段,即
论判决
非常相似
我猜这可以用for循环来完成,但我不确定你会如何抓住这些线,然后把它们一个接一个地放进去。谢谢你的帮助

这怎么样

input1 = """
this is an example
line that is a run
on sentence
"""

input2 = """
i am another example
paragraph that is
very similar
"""

input1_lines = input1.strip().splitlines()
input2_lines = input2.strip().splitlines()

for line1, line2 in zip(input1_lines, input2_lines):
    print("{}\n{}".format(line1, line2))
输出

这是一个例子
我是另一个例子
那是一条跑步路线
第段,即
论判决
非常相似

我知道我已经迟到了,但这里有另一种方法:

a = """ this is an example 
 line that is a run
 on sentence"""

b =  '''i am another example
 paragraph that is
 very similar'''

a_list = a.split("\n")
b_list = b.split("\n")

c = [[x, b_list[index]] for index, x in enumerate(a_list)]
c_string = "\n".join(x for i in c for x in i)
输出是一个字符串,如下所示:

“这是一个示例\n我是另一个示例\n行,它是一个在句子\n上非常相似的\n运行段落”

编辑: 或者你可以在一行中完成

c = "\n".join(x for i in [[x, b.split("\n")[index]] for index, x in enumerate(a.split("\n"))] for x in i)

izip的问题是,它的输出是什么:

input1 = """
this is an example
line that is a run
"""

input2 = """
i am another example
paragraph that is
on sentence
"""

input1_lines = input1.strip().splitlines()
input2_lines = input2.strip().splitlines()

for line1, line2 in zip(input1_lines, input2_lines):
    print("{}\n{}".format(line1, line2))
因此,作为补充:

input1 = [
    'this is an example',
    'line that is a run',
]

input2 = [
    'i am another example',
    'paragraph that is',
    'on sentence',
]

output = ''
for i in range(3):
    output += input1[i] + '\n' if len(input1) > i else '\n'
    output += input2[i] + '\n' if len(input2) > i else '\n'
print(output)

您可以在

上查看它。您可以使用字符串模块功能。string.splitlines创建一个由换行符分隔的列表。join函数通过点之前的任何字符连接列表中的元素。例如:

import string

lyric1 = """this is an example 
line that is a run
on sentence"""

lyric2 = """i am another example
paragraph that is
very similar"""

def merge_lyrics(l1,l2):
    l1 = l1.splitlines()
    l2 = l2.splitlines()
    lyrics = []
    for i in range(len(l1)):
        lyrics.append(l1[i])
        lyrics.append(l2[i])
    return("\n".join(lyrics))


mylyrics = merge_lyrics(lyric1,lyric2)
print mylyrics

首先,您需要将数据输入到程序中。您可以使用
input()
函数输入单行,如果需要更多,您可以基于标准
input
创建自己的
inp()
函数。像这样:

    def inp():
        res = []
        line = input()
        while line != '':
            res.append(line)
            line = input()
        return res
尝试在控制台中运行它并输入几行。空行是输入的结尾:

>>> d1=inp()
this is an example
line that is a run
on sentence
>>>
>>> print(d1)
['this is an example', 'line that is a run', 'on sentence']
d2也一样:

>>> d2=inp()
i am another example
paragraph that is
very similar
>>> print(d2)
['i am another example', 'paragraph that is', 'very similar']
下一步你必须把它们混合起来。使用
zip
方法将元素分组为对,然后使用
itertools.chain.from\u iterable
将对列表展平是很容易的。比如:

>>> list(itertools.chain.from_iterable(zip(d1,d2)))
['this is an example', 'i am another example', 'line that is a run', 'paragraph that is', 'on sentence', 'very similar']
您可以
join()
将此数组合并为一行,并使用
'\n'
作为分隔符,然后
打印它:

>>> print('\n'.join(itertools.chain.from_iterable(zip(d1,d2))))
this is an example
i am another example
line that is a run
paragraph that is
on sentence
very similar

你试过了吗?您是否希望其他人为您编写代码?不,我根本不确定如何处理此问题。您使用的是Python2还是Python3?我使用的是Python2