相关疑难解决方法(0)

转置列表清单

让我们来:

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Run Code Online (Sandbox Code Playgroud)

我正在寻找的结果是

r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Run Code Online (Sandbox Code Playgroud)

并不是

r = [(1, 4, 7), (2, 5, 8), (3, 6, 9)]
Run Code Online (Sandbox Code Playgroud)

非常感激

python transpose list

200
推荐指数
6
解决办法
18万
查看次数

Python 2D列表切片

我环顾四周,找不到任何具体的东西,所以这里有:

我有一份清单清单:

S = [[3,4],[6,7],[10,12]]
Run Code Online (Sandbox Code Playgroud)

我想将第i个索引元素的第0个索引添加到另一个列表的末尾:

R = [5,6,7]
Run Code Online (Sandbox Code Playgroud)

通常使用一维列表我可以说:

R = R + S[i:]
Run Code Online (Sandbox Code Playgroud)

并从第i个索引中获取所有元素,但我想要2D S的第i个索引的第0个索引.如果我们从i = 1开始,我最终会得到:

R = [5,6,7,6,10]
Run Code Online (Sandbox Code Playgroud)

另外,我不想使用for循环我想要一个可以工作的列表切片方法(如果有的话),因为它需要在一定的范围内.

python list slice python-2.7

5
推荐指数
1
解决办法
3219
查看次数

在python中转置(转动)列表的字典

我有一个字典,看起来像:

{'x': [1, 2, 3], 'y': [4, 5, 6]}
Run Code Online (Sandbox Code Playgroud)

我想将其转换为以下格式:

[{'x': 1, 'y': 4}, {'x': 2, 'y': 5}, {'x': 3, 'y': 6}] 
Run Code Online (Sandbox Code Playgroud)

我可以通过显式循环来做到这一点但是有一个很好的pythonic方法吗?

编辑:原来有一个类似的问题在这里和一个答案是一样的在这里接受的答案,但这个答案的作者写道:"我不会容忍任何一种真正的系统的使用这种代码的".有人可以解释为什么这样的代码是坏的?它看起来非常优雅.

python dictionary transpose pivot nested

5
推荐指数
1
解决办法
3207
查看次数

Pythonic将嵌套列表操作为嵌套的chunked列表的方法

我有一个列表,其嵌套列表的大小可能会随着2的倍数而变化.目前,在此示例中,嵌套列表的长度为4.

a_list = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
Run Code Online (Sandbox Code Playgroud)

根据长度,我试图打破列表,以最好的pythonic方式获得以下结果:

a = [[1,2], [5,6], [9,10]]
b = [[3,4], [7,8], [11,12]]
Run Code Online (Sandbox Code Playgroud)

如果嵌套列表的长度为6,那么

c = [[..], [..], [..]]
Run Code Online (Sandbox Code Playgroud)

它是一种嵌套列表的转置,但在一行中有2组值不能转置.

python list

2
推荐指数
1
解决办法
123
查看次数

根据元素的位置重塑列表列表

我有一个列表,看起来像这样;

[[4, 0, 1], [0, 0, 1], [0, 1, 2], [1, 1, 0], [2, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

哪个是基于元素位置从上面的列表中获取3个列表的最有效方法?

结果:

[4,0,0,1,2]
[0,0,1,1,0]
[1,1,2,0,0]
Run Code Online (Sandbox Code Playgroud)

python list

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

如何将字典拼成两个列表的元组?

现在我有一本字典,

{2.9: [0.66], 3.3: [0.82, 0.48]}
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个由两个列表组成的元组:

([3.3, 3.3, 2.9], [0.82, 0.48, 0.66])
Run Code Online (Sandbox Code Playgroud)

3.3 出现两次,因为相应的词典条目中有两个元素.

我该怎么做?

python dictionary flatten

0
推荐指数
1
解决办法
659
查看次数

重组/重新排列列表

我有一个 Python 列表,如下所示:

data = [[1, 2, 3], [10, 20, 30]]
Run Code Online (Sandbox Code Playgroud)

现在我需要重组列表,使其看起来像这样:

data_new = [[1, 10], [2, 20], [3, 30]]
Run Code Online (Sandbox Code Playgroud)

我设法通过使用两个 for 循环来解决这个问题:

data = [[1, 2, 3], [10, 20, 30]]

len_data = len(data)
len_dat = len(data[0])
data_new = []

for index_dat in xrange(len_dat):
    dat = []
    for index_data in xrange(len_data):
        dat.append(data[index_data][index_dat])
    data_new.append(dat)

print data_new
Run Code Online (Sandbox Code Playgroud)

最简单/最Pythonic的方法是什么?对我来说,性能不是问题,但拥有良好的性能总是好的。最好有一种解决方案用于就地排序,另一种解决方案是通过创建新列表来实现。

python list

-1
推荐指数
1
解决办法
634
查看次数

标签 统计

python ×7

list ×5

dictionary ×2

transpose ×2

flatten ×1

nested ×1

pivot ×1

python-2.7 ×1

slice ×1