使用Sqlite,"select..from"命令返回结果"output",其打印(在python中):
>>print output
[(12.2817, 12.2817), (0, 0), (8.52, 8.52)]
Run Code Online (Sandbox Code Playgroud)
它似乎是一个元组列表.我想在一个简单的1D数组中转换"输出"(我猜的是Python中的列表):
[12.2817, 12.2817, 0, 0, 8.52, 8.52]
Run Code Online (Sandbox Code Playgroud)
或2x3矩阵:
12.2817 12.2817
0 0
8.52 8.52
Run Code Online (Sandbox Code Playgroud)
通过"output [i] [j]"读取
flatten命令不能完成第一个选项的工作,我不知道第二个选项...... :)
你能给我一个提示吗?有些事情很快就会很好,因为真正的数据要大得多(这里只是一个简单的例子).
考虑一下我是否有一个带有元组参数(x,y)的函数,其中x在范围(X)中,y在范围(Y)中,正常的方法是:
for x in range(X):
for y in range(Y):
function(x,y)
Run Code Online (Sandbox Code Playgroud)
有办法吗?
for xy in something_like_range(X,Y):
function(xy)
Run Code Online (Sandbox Code Playgroud)
这样xy是一个元组(x,y)?
在这个问题的评论中讨论的上下文中提到,虽然连接一串字符串只是简单地''.join([str1, str2, ...])连接,但连接一系列列表就像是list(itertools.chain(lst1, lst2, ...)),尽管你也可以使用列表理解[x for y in [lst1, lst2, ...] for x in y].让我感到惊讶的是,第一种方法始终比第二种方法更快:
import random
import itertools
random.seed(100)
lsts = [[1] * random.randint(100, 1000) for i in range(1000)]
%timeit [x for y in lsts for x in y]
# 39.3 ms ± 436 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)
%timeit list(itertools.chain.from_iterable(lsts))
# 30.6 ms ± 866 µs per loop (mean ± std. dev. …Run Code Online (Sandbox Code Playgroud)