[英]List slicing without numpy
我的ohlc
列表如下:
ohlc = [["open", "high", "low", "close"],
[100, 110, 70, 100],
[200, 210, 180, 190],
[300, 310, 300, 310]]
我想将其切片为:
[["open"],[100],[200],[300]]
我们可以使用numpy
轻松分割该列表,但如果没有numpy
的帮助,我不知道该怎么做。
我尝试了下面列出的方法,但没有显示我想要的值:
ohlc[:][0]
ohlc[:][:1]
ohlc[0][:]
zip
function 为您提供包含每个子列表的第i
个索引中的元素的元组:
In [217]: ohlc = [["open", "high", "low", "close"],
...: [100, 110, 70, 100],
...: [200, 210, 180, 190],
...: [300, 310, 300, 310]]
...:
In [218]: for t in zip(*ohlc): print(t)
('open', 100, 200, 300)
('high', 110, 210, 310)
('low', 70, 180, 300)
('close', 100, 190, 310)
你正在寻找其中的第一个,你打电话给你的朋友next()
。
In [219]: next(zip(*ohlc))
Out[219]: ('open', 100, 200, 300)
但这只是一个包含所有元素的元组,而不是你想要的列表列表,所以使用列表推导:
In [220]: [[t] for t in next(zip(*ohlc))]
Out[220]: [['open'], [100], [200], [300]]
您可以遍历列表并在每个子列表中获取索引中的元素
ohlc = [["open", "high", "low", "close"],
[100, 110, 70, 100],
[200, 210, 180, 190],
[300, 310, 300, 310]]
index = 0
result = [[o[index]] for o in ohlc] # [['open'], [100], [200], [300]]
这可以是正确的解决方案吗?
list_ = []
for i in ohlc:
list_.append((i[0]))
def slice_list(input):
ans = []
for x in input:
ans.append(x[0])
return ans
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.