Python 列列表到行列表

Python 列列表到行列表,python,Python,我有一个列表字典,列表代表列。所有列表的长度相同,列表的数量是可变的。我想将列列表转换为行列表。它不必以字典结尾,矩阵是完美的;但是,我不能使用numpy 例如:设置如下所示 >>> A = [ 1 , 2 , 3 , 4 , 5 , 6] >>> B = ["A", "B", "C", "D", "E", "F"] >>> C = ["J", "K", "L", "M", "N", "O"] >>> d = {"

我有一个列表字典,列表代表列。所有列表的长度相同,列表的数量是可变的。我想将列列表转换为行列表。它不必以字典结尾,矩阵是完美的;但是,我不能使用
numpy

例如:设置如下所示

>>> A = [ 1 ,  2 ,  3 ,  4 ,  5 ,  6]
>>> B = ["A", "B", "C", "D", "E", "F"]
>>> C = ["J", "K", "L", "M", "N", "O"]
>>> d = {"One": A, "Two": B, "Three": C}
在这里施展魔法并获得以下信息

[(1, 'A', 'J'), (2, 'B', 'K'), (3, 'C', 'L'), (4, 'D', 'M'), (5, 'E', 'N'), (6, 'F', 'O')]
请注意,COL中的第一个元素现在位于一行中。现在我可以通过做

>>> zip(d["One"], d["Two"], d["Three"])

但这只有在词典条目数量不变的情况下才能起作用。如果字典条目的数量是可变的,我怎么做?希望我说得清楚。

请查看文档以了解更多信息。通过将
*
放在作为函数参数的iterable前面,函数将以该iterable中的元素作为其参数进行调用。例如
zip(*['ab','cd','ef'])
将变成
zip('ab','cd','ef')

使用此方法,您可以生成任意大小字典的压缩列表,但请注意,由于字典是无序的,您需要提供单独的列表,作为结果列组的顺序,例如:

>>> A = [ 1 ,  2 ,  3 ,  4 ,  5 ,  6]
>>> B = ["A", "B", "C", "D", "E", "F"]
>>> C = ["J", "K", "L", "M", "N", "O"]
>>> d = {"One": A, "Two": B, "Three": C}
>>> order = ["One", "Two", "Three"]
>>> zip(*[d[k] for k in order])
[(1, 'A', 'J'), (2, 'B', 'K'), (3, 'C', 'L'), (4, 'D', 'M'), (5, 'E', 'N'), (6, 'F', 'O')]

如果列顺序无关紧要,您可以使用非常简洁的方法,但元组顺序是任意的。

查看文档以了解更多信息。通过将
*
放在作为函数参数的iterable前面,函数将以该iterable中的元素作为其参数进行调用。例如
zip(*['ab','cd','ef'])
将变成
zip('ab','cd','ef')

使用此方法,您可以生成任意大小字典的压缩列表,但请注意,由于字典是无序的,您需要提供单独的列表,作为结果列组的顺序,例如:

>>> A = [ 1 ,  2 ,  3 ,  4 ,  5 ,  6]
>>> B = ["A", "B", "C", "D", "E", "F"]
>>> C = ["J", "K", "L", "M", "N", "O"]
>>> d = {"One": A, "Two": B, "Three": C}
>>> order = ["One", "Two", "Three"]
>>> zip(*[d[k] for k in order])
[(1, 'A', 'J'), (2, 'B', 'K'), (3, 'C', 'L'), (4, 'D', 'M'), (5, 'E', 'N'), (6, 'F', 'O')]

如果列顺序无关紧要,您可以使用非常简洁的方法,但元组顺序是任意的。

如果字典项的顺序无关紧要,您可以这样做

zip(*d.values())

以获得所需的结果。

如果字典项的顺序无关紧要,您可以这样做

zip(*d.values())

以获得所需的结果。

字典中键的顺序是否重要?我的意思是,这些键真的是
“一”
“二”
“三”
,你想按通常的顺序使用它们吗?@Sven Marnach没有顺序不重要。字典中键的顺序是否重要?我的意思是,钥匙真的是
“一”
“二”
“三”
,你想按通常的顺序使用它们吗?@Sven Marnach没有顺序不重要。可能重复