【问题标题】:How to format elements of lists by splitting '\n'? [duplicate]如何通过拆分'\ n'来格式化列表元素? [复制]
【发布时间】:2021-10-19 05:22:34
【问题描述】:

我有清单

col3_data = ['Hi','Good\nMorning','My\nfriend','Sam']

我想以某种方式格式化列表,使包含 \n 的元素只显示第一行。

预期输出:

['Hi','Good','My','Sam']

我尝试使用:

desired_list = [x.split('\n')[1:] for x in col3_data]

但我没有得到想要的结果

【问题讨论】:

  • [i.split()[0] for i in col3_data] ?
  • [1:] 和你想要的完全相反
  • 或者list(map(lambda s: s.split('\n')[0], col3_data))
  • @rv.kvetch map 非常昂贵。避免它。

标签: python python-3.x string list string-formatting


【解决方案1】:

试试这个应该可以的

    col3_data = ['Hi', 'Good\nMorning', 'My\nfriend', 'Sam']

    newl = []
     for x in col3_data:

         newl.append((x.split("\n",1)[0]))

      print(newl)

会给

['Hi', 'Good', 'My', 'Sam']

【讨论】:

  • props 用于进行 1 的最大拆分 - 我想效率会更高。
【解决方案2】:

x.split('\n')[1:] 这行有问题。应该是x.split('\n')[:1][0][x.split('\n')[0]

试试这个:

col3_data = ['Hi','Good\nMorning','My\nfriend','Sam']

desired_list = [x.split('\n')[:1][0] for x in col3_data]

# OR

desired_list = [x.split('\n')[0] for x in col3_data]

print(desired_list)

输出:

['Hi', 'Good', 'My', 'Sam']

【讨论】:

  • 可能我不明白,这里[:1][0]有什么意义?
  • 使用[:1][0] 避免列表类型输出
  • 嗯...但是[0] 不是更容易吗?我的意思是,我不知道你什么时候会使用前者。
  • 是的,但我尝试解决@Atom 在切片列表中的现有代码面临的问题。 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
  • 2015-01-12
  • 1970-01-01
  • 1970-01-01
  • 2018-03-11
相关资源
最近更新 更多