【问题标题】:Merge some list elements in a Python List by input Number通过输入 Number 合并 Python List 中的一些列表元素
【发布时间】:2019-04-13 16:38:29
【问题描述】:

我很难根据给定的数字合并 Python 列表中的元素。

我已经找到了使用特定数字的解决方案。但我想使用各种给定的数字(N)。

即当我有清单时

['There', 'was', 'a', 'farmer', 'who', 'had', 'a', 'dog', 'and', 'cat', '.']

结果,

当 N = 2

['There was', 'a farmer', 'who had', 'a dog', 'and cat', '.']

或 N = 3

['There was a', 'farmer who had', 'a dog and', 'cat .']

我更希望它直接修改现有列表,不使用任何模块或库。

非常感谢任何帮助!

【问题讨论】:

  • 你能展示一些你尝试过的代码吗?
  • 可能重复:stackoverflow.com/questions/434287/… 只是 ' '.join
  • "我更希望它直接修改现有列表,不使用任何模块或库。"你为什么更喜欢那些东西?如果你想直接修改列表,那几乎肯定是低效的。为什么不想使用模块?

标签: python list merge


【解决方案1】:

这是明智的做法。它确实创建了一个新列表。因为这比尝试修改原始文件更有效

a = ['There', 'was', 'a', 'farmer', 'who', 'had', 'a', 'dog', 'and', 'cat', '.']
n = 2
print([' '.join(a[i:i+n]) for i in range(0, len(a), n)])
n = 3
print([' '.join(a[i:i+n]) for i in range(0, len(a), n)])

输出:

['There was', 'a farmer', 'who had', 'a dog', 'and cat', '.']
['There was a', 'farmer who had', 'a dog and', 'cat .']

【讨论】:

    【解决方案2】:

    这是我能记住的最简单的方法:

    my_list = ['a','b','c','d','e','f','g','h','i']
    N = 3
    
    my_list[0:N] = [''.join(my_list[0:N])]
    

    【讨论】:

      【解决方案3】:
          word_list = ['There', 'was', 'a', 'farmer', 'who', 'had', 'a', 'dog', 'and', 'cat', '.']
          new_word_list = []
          N = int(input())
          for i in range(0, len(word_list), N):
              string = ''
              for j in (range(len(word_list) - i) if len(word_list) - i < N else range(N)):
                  string = string + word_list[i + j] + ' '
               new_word_list.append(string)
      
           print(new_word_list)
      

      这里我使用基本的 for 循环来迭代列表,尽管必须创建新列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-08-04
        • 2019-04-21
        • 2019-02-17
        • 2010-11-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多