我想知道是否有一条快捷方式可以在Python列表中列出一个简单的列表.
我可以在for循环中做到这一点,但也许有一些很酷的"单行"?我用reduce尝试了,但是我收到了一个错误.
码
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
Run Code Online (Sandbox Code Playgroud)
错误信息
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
AttributeError: 'NoneType' object has no attribute 'extend'
Run Code Online (Sandbox Code Playgroud) 我有一个JavaScript数组,如:
[["$6"], ["$12"], ["$25"], ["$25"], ["$18"], ["$22"], ["$10"]]
Run Code Online (Sandbox Code Playgroud)
我将如何将单独的内部数组合并为:
["$6", "$12", "$25", ...]
Run Code Online (Sandbox Code Playgroud) 是的,我知道这个主题已经被覆盖过了(这里,这里,这里,这里),但据我所知,除了一个之外,所有解决方案都在这样的列表中失败:
L = [[[1, 2, 3], [4, 5]], 6]
Run Code Online (Sandbox Code Playgroud)
期望的输出是什么
[1, 2, 3, 4, 5, 6]
Run Code Online (Sandbox Code Playgroud)
或者甚至更好,一个迭代器.我看到的唯一适用于任意嵌套的解决方案可以在这个问题中找到:
def flatten(x):
result = []
for el in x:
if hasattr(el, "__iter__") and not isinstance(el, basestring):
result.extend(flatten(el))
else:
result.append(el)
return result
flatten(L)
Run Code Online (Sandbox Code Playgroud)
这是最好的型号吗?我忽略了什么吗?任何问题?
import numpy as np
y = np.array(((1,2,3),(4,5,6),(7,8,9)))
OUTPUT:
print(y.flatten())
[1 2 3 4 5 6 7 8 9]
print(y.ravel())
[1 2 3 4 5 6 7 8 9]
Run Code Online (Sandbox Code Playgroud)
两个函数都返回相同的列表.那么两个不同功能执行相同工作的需求是什么.
在PHP中,是否可以在不使用递归或引用的情况下展平(双/多)维数组?
我只对值感兴趣所以可以忽略键,我正在考虑array_map()
和array_values()
.
我有一个包含2个索引级别的数据框:
value
Trial measurement
1 0 13
1 3
2 4
2 0 NaN
1 12
3 0 34
Run Code Online (Sandbox Code Playgroud)
我想转变成这个:
Trial measurement value
1 0 13
1 1 3
1 2 4
2 0 NaN
2 1 12
3 0 34
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能做到最好?
我需要这个,因为我想按照这里的指示聚合数据,但如果它们被用作索引,我就无法选择我的列.
有没有一种快速的方法来"压平"或平整一些numpy数组中的第一个维度?
例如,给定一个numpy维度数组(50,100,25)
,结果尺寸将是(5000,25)
我有一个javascript对象,我需要展平成一个字符串,以便我可以作为查询字符串传递,我该怎么做?即:
{ cost: 12345, insertBy: 'testUser' }
会成为 cost=12345&insertBy=testUser
我不能使用jQuery AJAX调用这个调用,我知道我们可以使用它并传递对象,data
但不是在这种情况下.然而,使用jQuery来展平对象是可以的.
谢谢.
如何在jQuery中简单地展平数组?我有:
[1, 2, [3, 4], [5, 6], 7]
Run Code Online (Sandbox Code Playgroud)
而且我要:
[1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud) 我试图实现类似于unlist的功能,但类型不会被强制转换为向量,但会返回包含保留类型的列表.例如:
flatten(list(NA, list("TRUE", list(FALSE), 0L))
Run Code Online (Sandbox Code Playgroud)
应该回来
list(NA, "TRUE", FALSE, 0L)
Run Code Online (Sandbox Code Playgroud)
代替
c(NA, "TRUE", "FALSE", "0")
Run Code Online (Sandbox Code Playgroud)
将由...返回unlist(list(list(NA, list("TRUE", list(FALSE), 0L))
.
从上面的例子中可以看出,扁平化应该是递归的.标准R库中是否有一个功能可以实现这一功能,或者至少还有一些其他功能可用于轻松有效地实现这一功能?
更新:我不知道从上面是否清楚,但非名单不应该被夷为平地,即flatten(list(1:3, list(4, 5)))
应该返回list(c(1, 2, 3), 4, 5)
.
flatten ×10
python ×5
arrays ×3
javascript ×3
list ×3
jquery ×2
numpy ×2
dataframe ×1
multi-index ×1
optimization ×1
pandas ×1
php ×1
r ×1