在 Python 中一次转换数组

Convert arrays in one in Python

我有字典:

dict = {"basic": {"last_name":["tomson", "brown"], "first_name":["paul", "max"]}}

我想写一个转换它的函数:

table = [["tomson", "paul"],
        ["brown", "max"]]

对于 terminaltables 模块:

from terminaltables import AsciiTable

table_data = [["last_name", "first_name"]]
table_data.append(table)

ascii_table = AsciiTable(table_data)
print "\n" + ascii_table.table + "\n"

结果:

+----------+-----------+
|last_name |first_name |
+----------+-----------+
|tomson    |paul       |
|brown     |max        |
+----------+-----------+

请帮帮我!我为我的英语感到抱歉:)

无需理解:

dict["basic"].values()

另请注意,调用您的变量 dict 是个坏主意,因为它会影响内置的字典函数。

如果您还需要"rotate"列表:

table = [list(reversed(x)) for x in zip(*dict['basic'].values())]

根据你的问题,你想要的最终列表是字典中两个列表的压缩包。 要获取列表,请调用 values() and to zip call zip([iterable, ...]).

出于某种原因,zip 输出是颠倒的,因此要获得您想要的原始顺序,您必须 运行 每个列表 reversed

最终代码为:

[list(reversed(x)) for x in zip(*dict["basic"].values())]

PS:正如 Daniel Roseman 所说,调用字典 "dict" 会隐藏内置的。这意味着如果在将字典分配给 "dict" 之后您想以任何方式使用内置 dict (例如将元组转换为字典),内置将不可用。