在 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
(例如将元组转换为字典),内置将不可用。
我有字典:
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
(例如将元组转换为字典),内置将不可用。