Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将具有列表值的字典转换为表_Python_Json_List_Dictionary - Fatal编程技术网

Python 如何将具有列表值的字典转换为表

Python 如何将具有列表值的字典转换为表,python,json,list,dictionary,Python,Json,List,Dictionary,我有一本字典: {"A": [1,2,3], "B": [5,7,9], "C":[12,5,6]} 我希望表格的格式如下: A | 1 A | 2 A | 3 B | 5 B | 7 . | . . | . C | 6 也许您需要数据表示。可能有不同的好方法来解决这个问题 这个 下面是一个简单的python代码,看看它是否适合您的需要 def dict_list_value_to_table(dict_with_list): """

我有一本字典:

{"A": [1,2,3], "B": [5,7,9], "C":[12,5,6]}
我希望表格的格式如下:

A  |   1
A  |   2
A  |   3
B  |   5
B  |   7
.  |   .
.  |   .
C  |   6

也许您需要数据表示。可能有不同的好方法来解决这个问题 这个

下面是一个简单的python代码,看看它是否适合您的需要

def dict_list_value_to_table(dict_with_list):
    """
    Function coverts a dictionary of list as it's 
    values to table format.
    >>> {"A": [1,2,3], "B": [5,7,9], "C":[12,5,6]}
    A  |  1
    A  |  2
    A  |  3
    B  |  5
    B  |  7
    B  |  9
    C  |  12
    C  |  5
    C  |  6

    """

    # Sorts the records orderly.
    for key in sorted(dict_with_list):
        for values in dict_with_list.get(key):
            print key, " | ", values 

    # Commented below does not sort.
    # But does the same.

    #for key, value in dict_with_list.items():
    #    for v in value:
    #        print key, "|",v  
    #        
    return 

if __name__=="__main__":
    arg = {"A": [1,2,3], "B": [5,7,9], "C":[12,5,6]}
    dict_list_value_to_table(arg)
如果你想要一些先进的东西,那么,正如在评论中所建议的那样

numpy或pandas和其他高级python数据结构。

如果您希望元素的添加顺序准确,请使用OrderedDict

d = {"A": [1,2,3], "B": [5,7,9], "C":[12,5,6]}
# make dictionary to list
l = []
for key, value in d.iteritems():
    temp = (key, value)
    l.append(temp)
# sort list
l = sorted(l, key = lambda x: x[0])
# finally!
for key, lists in l:
    for item in lists:
        print( "{}|{}".format(key, item) )
# tested in python2.7, 3.5

from collections import OrderedDict
data = {"A": [1,2,3], "B": [5,7,9], "C": [12,5,6]}
# expecting alpha order "A"
sorted_data = OrderedDict(sorted(data.items(), key=lambda t: ord(t[0])))

for key, value in sorted_data.items():
    for le in value:
        print("{}|{}".format(key, le))
输出:

A | 1
A | 2
A | 3
B | 5
B | 7
B | 9
C | 5
C | 6
C | 12

当你说table是什么意思?table和table一样,我在这里找不到如何表示它,但是我模糊地画了它,但基本上每一行都应该有键和列表中的一个值,然后是下一行键和列表中的一个值,依此类推。它不需要有标题。python中没有表。这是一个根本不存在的数据结构。您可以使用numpy或pandas分别构造矩阵或数据帧,但即使是这些也只是嵌套列表。你想用它做什么?是的,我指的是数据帧或一个漂亮的表格或类似的东西。。但是我想知道是否有一种方法可以满足我的要求……你是想把结果以那种格式打印出来,还是把它存储在某个地方?另外,第一个字典中的顺序对结果重要吗?请说明这是python 2。此代码不在python3中运行。iteritems方法已重命名为仅项目Dictionary将没有精确的顺序
A | 1
A | 2
A | 3
B | 5
B | 7
B | 9
C | 5
C | 6
C | 12