python嵌套循环简写,如何简化python中的两个嵌套循环

I'm trying to simplify two neested for loops in python but I cant resolve this.

My code:

head = [[1, 2], [3, 4]]

temp = []

for array in head:

for element in array:

temp.append(element)

print(temp)

========OUTPUT========

[1, 2, 3, 4]

I try:

head = [[1, 2], [3, 4]]

temp = []

for array in head:

temp += [element for element in array]

print(temp)

But only can simplify one loop

EDIT: SOLUTION

Specific solution for my case by @serafeim:

head = [[1, 2], [3, 4]]

print([element for array in head for element in array])

Other solutions:

By anon

from functools import reduce

head = [[1, 2], [3, 4]]

print(reduce(list.__add__, head))

By: @chepner

from itertools import chain

head = [[1, 2], [3, 4]]

print([x for x in chain.from_iterable(head)])

By: @R-zu

import numpy as np

head = [[1, 2], [3, 4]]

print(np.array(head).reshape(-1).tolist())

解决方案

This is already available from the itertools module.

from itertools import chain

temp = [x for x in chain.from_iterable(head)]

# or just temp = list(chain.from_iterable(head))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值