列表推导式之文字组合问题,怎么插入“不”,到“明白清楚了解”前面,使之完成文字组合?

z = '''
我
知道,了解,明白,清楚2
我被搞了
'''
# 末尾标记为2的行,或者数字,每个插入“不”
'''
不知道,不了解,不明白,不清楚
'''

# 我想要打印的最终结果,print
'''
我 知道 我被搞了
我不知道 我被搞了
我 了解 我被搞了
我 不了解 我被搞了
我 明白 我被搞了
我 不明白 我被搞了
……

我是按如下思路解题的:

1、首先,把z按换行符分隔成列表;

2、然后,遍历这个列表,把结尾为2的那一行按','分隔成一个列表,不是以2结尾的添加到另一个列表;

3、最后,遍历结尾为2的那个列表,打印拼接了'不'和没拼接'不'的各字符串即可。

代码如下:

参考链接:


https://blog.csdn.net/iprobobo/article/details/123456004

https://blog.csdn.net/liujingwei8610/article/details/121391212

http://www.45fan.com/article.php?aid=1CZEIrox2010ddY0

z = '''
我
知道,了解,明白,清楚2
我被搞了
'''
# 末尾标记为2的行,或者数字,每个插入“不”
'''
不知道,不了解,不明白,不清楚
'''
 
# 我想要打印的最终结果,print
'''
我 知道 我被搞了
我不知道 我被搞了
我 了解 我被搞了
我 不了解 我被搞了
我 明白 我被搞了
我 不明白 我被搞了
……
'''
#  https://www.bilibili.com/read/cv17429170/
content=z.split('\n') # 把z按换行符分隔成字符串列表
#print(content)
addNoStr=[] # 存储结尾为'2'的那一样
firstEnd=[]  # 存储第一行和第三行

for s in content:  #遍历字符串的列表
    if len(s)!=0:  #如果此行不为空
        #print("s=",s)
        # https://blog.csdn.net/iprobobo/article/details/123456004
        # https://blog.csdn.net/liujingwei8610/article/details/121391212
        if s.endswith("2"): # 并且是以'2' 结尾,把此行去除'2'后按','分隔成列表
            # http://www.45fan.com/article.php?aid=1CZEIrox2010ddY0
            addNoStr=s.strip('2').split(',')
        else: # 如果不是以2为结尾,则添加到另一个列表
            firstEnd.append(s)

for s2 in addNoStr:  # 遍历需要添加'不'的字符串列表
    print(firstEnd[0]+s2+firstEnd[1]) # 首先打印没有'不'的拼接字符串
    print(firstEnd[0]+"不"+s2+firstEnd[1]) # 再打印添加了'不'的拼接字符串
            
            

img

a='知道,了解,明白,清楚'
b=a.split(',')
c=['不'+x for x in b]
d=','.join(c)