Python列表推导:在列表中的每个元素后面添加n个特定元素

huangapple go评论98阅读模式
英文:

Python List Comprehension: Add n specific elements after each element in a list

问题

Here is the translated code:

  1. # 我想要在列表中的每个元素后面添加n个特定元素,只使用列表推导式。
  2. # 示例:
  3. l = [A, B, C, D, E]
  4. element = ''
  5. # 对于 n = 1,应该得到
  6. l = [A, '', B, '', C, '', D, '', E, '']
  7. # 或者对于 n = 2,应该得到
  8. l = [A, '', '', B, '', '', C, '', '', D, '', '', E, '', '']

Please note that I've only translated the code portion as per your request.

英文:

I would like to add n specific elements after each element in a list using only list comprehension.

Example:

l = [A, B, C, D, E]

element = ''

for n = 1 should result in

l = [A, '', B, '', C, '', D, '', E, '']

or n = 2 should result in

l = [A, '', '', B, '', '', C, '', '', D, '', '', E, '', '']

答案1

得分: 1

以下是您要求的内容的中文翻译:

这个任务在没有列表理解的情况下相当简单。

如果您想要使用列表理解,可以像这样做:

  1. l = ['A', 'B', 'C', 'D', 'E']
  2. [(x, '') for x in l]
  3. # [('A', ''), ('B', ''), ('C', ''), ('D', ''), ('E', '')]

通过以下方式展开这个嵌套列表:

  1. [item for sublist in ((x, '') for x in l) for item in sublist]
  2. # ['A', '', 'B', '', 'C', '', 'D', '', 'E', '']

同样对于两个空格:

  1. [item for sublist in ((x, '', '') for x in l) for item in sublist]
  2. # ['A', '', '', 'B', '', '', 'C', '', '', 'D', '', '', 'E', '', '']

编辑:

  1. n = 1
  2. [item for sublist in ([x] + [''] * n for x in l) for item in sublist]
  3. # ['A', '', 'B', '', 'C', '', 'D', '', 'E', '']
  4. n = 2
  5. # ['A', '', '', 'B', '', '', 'C', '', '', 'D', '', '', 'E', '', '']

希望这对您有所帮助。

英文:

It is pretty straight-forward without the List Comprehension.

If you want to use List Comprehension you can do something like:

  1. l = ['A','B','C','D','E']
  2. [(x,'') for x in l]
  3. #[('A', ''), ('B', ''), ('C', ''), ('D', ''), ('E', '')]

Flatten this nested list by:

  1. [item for sublist in ((x,'') for x in l) for item in sublist]
  2. #['A', '', 'B', '', 'C', '', 'D', '', 'E', '']

Similarly for two blank spaces:

  1. [item for sublist in ((x,'','') for x in l) for item in sublist]
  2. #['A', '', '', 'B', '', '', 'C', '', '', 'D', '', '', 'E', '', '']

Edit:

  1. n=1
  2. [item for sublist in ([x] + ['']*n for x in l) for item in sublist]
  3. #['A', '', 'B', '', 'C', '', 'D', '', 'E', '']
  4. n=2
  5. #['A', '', '', 'B', '', '', 'C', '', '', 'D', '', '', 'E', '', '']

答案2

得分: 0

只需使用两个循环:

  1. def add_n_elements_after_each(iterable, n, padder):
  2. return [
  3. padder if i else element
  4. for element in iterable
  5. for i in range(0, n + 1)
  6. ]

试一试:

  1. print(add_n_elements_after_each(['A', 'B', 'C', 'D'], 2, ''))
  2. # ['A', '', '', 'B', '', '', 'C', '', '', 'D', '', '']
英文:

Simply use two loops:

  1. def add_n_elements_after_each(iterable, n, padder):
  2. return [
  3. padder if i else element
  4. for element in iterable
  5. for i in range(0, n + 1)
  6. ]

Try it:

  1. print(add_n_elements_after_each(['A', 'B', 'C', 'D'], 2, ''))
  2. # ['A', '', '', 'B', '', '', 'C', '', '', 'D', '', '']

答案3

得分: 0

也许你应该为列表中的每个项目使用<i>for</i>循环

  1. list_help = []
  2. for l in list:
  3. list_help.append(l)
  4. for _ in range(n):
  5. list_help.append(' ')
英文:

Maybe you should use <i>for</i> loop for every item in list

  1. list_help = []
  2. for l in list:
  3. list_help.append(l)
  4. for _ in range(n):
  5. list_help.append(&#39; &#39;)

huangapple
  • 本文由 发表于 2023年5月25日 18:15:02
  • 转载请务必保留本文链接:https://go.coder-hub.com/76331183.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定