【问题标题】:How to merge elements in list in python with condition?如何将python列表中的元素与条件合并?
【发布时间】:2018-04-11 02:58:20
【问题描述】:

我很难找到在列表中合并两种不同类型元素的解决方案。

list_i = ['teacher', '10', 'student', '100', 'principle', '2']

结果:

list_1 = ['teacher:10', 'student:100', 'principle:2']

非常感谢任何帮助!

【问题讨论】:

  • 你到底卡在哪里了?迭代2?使用字符串?

标签: python list


【解决方案1】:

这将起作用:

[list_i[i] + ":" + list_i[i+1] for i in range(0, len(list_i), 2)]

这会产生:

['teacher:10', 'student:100', 'principle:2']

【讨论】:

    【解决方案2】:

    使用以下代码

    [':'.join(item) for item in zip(list_i[::2],list_i[1::2])]
    

    这只会将列表分成两部分并用 zip 将它们连接起来

    【讨论】:

      【解决方案3】:

      使用第三方库more_itertools,可以应用sliding window技术:

      > pip install more_itertools
      

      代码

      import more_itertools as mit
      
      
      iterable = ['teacher', '10', 'student', '100', 'principle', '2']
      
      [":".join(i) for i in mit.windowed(iterable, 2, step=2)]
      # ['teacher:10', 'student:100', 'principle:2']
      

      或者应用grouperitertools recipe,这也在more_itertools中实现。

      [":".join(i) for i in mit.grouper(2, iterable)]
      # ['teacher:10', 'student:100', 'principle:2']
      

      【讨论】:

        猜你喜欢
        • 2018-02-02
        • 1970-01-01
        • 2021-06-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-11
        相关资源
        最近更新 更多