【问题标题】:Merge items in list based on condition根据条件合并列表中的项目
【发布时间】:2020-12-21 11:05:37
【问题描述】:

我有一个看起来像这样的列表:

a = ["/n abc", "def", "ghi", "/n jkl", "mno", "/n pqr", "/n stu"]

我希望它看起来像这样:

a = ["abcdefghi", "jklmno" "pqr" "stu"] 

本质上,我希望代码做的是将列表中的项目与下面的项目顺序合并,直到遇到带有子字符串“/n”的元素。它应该对整个列表执行此操作,然后删除子字符串“/n”的所有实例

【问题讨论】:

  • 试试''.join(a).replace('/n', '').split()
  • 真的是/n 还是错误和实际你有\n

标签: python list merge


【解决方案1】:
result = [i.strip() for i in ''.join(a).split('/n') if i]

但是你应该先发布你的尝试。

【讨论】:

  • 结果中的第一个元素将为空 str - ''
【解决方案2】:

这是我的尝试:

res = []
s = ""
for i in l:
    if i.startswith("/n"):
        if s:
            res.append(s)
        s = i[3:]
    else:
        s+=i
if s:
    res.append(s)
print(res)

【讨论】:

    【解决方案3】:

    一种基本方式(不使用特殊方法):

    result = []
    i = 0
    index = 0
    while i < len(a):
        if a[i][:2] == '\n':
            index += 1
        result[index] += a[i]
    

    如果我做错了什么,请纠正我(我已经很久没有使用 Python了)。

    【讨论】:

      猜你喜欢
      • 2014-03-07
      • 1970-01-01
      • 2012-07-10
      • 2011-03-17
      • 2022-01-01
      • 2020-08-26
      • 1970-01-01
      相关资源
      最近更新 更多