怎么输出古诗的翻转形式

img


我觉得可以先分隔字符串,添加到 ls 这个给出的列表里面,然后用reverse翻转,但是,我不会做,怎么把古诗分隔开啊

s = '钟山风雨起苍黄,百万雄师过大江。\
    虎踞龙盘今胜昔,天翻地覆慨而慷。\
    宜将剩勇追穷寇,不可沽名学霸王。\
    天若有情天亦老,人间正道是沧桑。'
ls = []

#整理,反转
t = [i.strip().split(',') for i in s.split('。')]
for i in t[:-1][::-1]:
    for j in i[::-1]:
        ls.append(j)
#打印
for i in range(0,len(ls),2):
    print(ls[i]+','+ls[i+1]+'。')

输出:
人间正道是沧桑,天若有情天亦老。
不可沽名学霸王,宜将剩勇追穷寇。
天翻地覆慨而慷,虎踞龙盘今胜昔。
百万雄师过大江,钟山风雨起苍黄。

参考一下,望采纳。

s = "钟山风雨起苍黄,百万雄师过大江。\n虎踞龙盘今胜昔,天翻地覆慨而慷。\n宜将剩勇追穷寇,不可沽名学霸王。\n天若有情天亦老,人间正道是沧桑。\n"
a = s.split('\n')
list = reversed([x.strip() for x in a if x.strip()!=''])
for i in list:
    print(i.split(',')[1] + ',' + i.split(',')[0].split('。')[0] + '。')

img

用正则表达式来做更准确一些,你给的例子原文没有换行,所以翻转后只是保留了标点符号的位置,也没有换行。

s = "钟山风雨起苍黄,百万雄师过大江。\
    虎踞龙盘今胜昔,天翻地覆慨而慷。\
    宜将剩勇追穷寇,不可沽名学霸王。\
    天若有情天亦老,人间正道是沧桑。"

import re
a = re.findall(r'\w+',s)
b=[]
for i in range(len(a)):
    c = s.split(a[i])
    b += c.pop(0)
    b.append(a[len(a)-i-1])
    s = c[0]
b.append(s)
print(''.join(b))

结果

人间正道是沧桑,天若有情天亦老。    不可沽名学霸王,宜将剩勇追穷寇。    天翻地覆慨而慷,虎踞龙盘今胜昔。    百万雄师过大江,钟山风雨起苍黄。