相关疑难解决方法(0)

将"元组列表"转换为平面列表或矩阵

使用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命令不能完成第一个选项的工作,我不知道第二个选项...... :)

你能给我一个提示吗?有些事情很快就会很好,因为真正的数据要大得多(这里只是一个简单的例子).

python tuples list

57
推荐指数
8
解决办法
3万
查看次数

用于循环的双重嵌套的Pythonic快捷方式?

考虑一下我是否有一个带有元组参数(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)?

python for-loop tuples nested-loops

16
推荐指数
2
解决办法
4504
查看次数

为什么itertools.chain比扁平化列表理解更快?

在这个问题的评论中讨论的上下文中提到,虽然连接一串字符串只是简单地''.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)

python list-comprehension flatten python-itertools

12
推荐指数
1
解决办法
1127
查看次数