Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.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_Dictionary - Fatal编程技术网

Python 在垂直列中打印字典旋转结果

Python 在垂直列中打印字典旋转结果,python,dictionary,Python,Dictionary,我有这本字典: dict1 = {'Name': ['Mary','Bob'],'Surname': ['White','Red']} 如果我进行打印,我有以下输出: 姓怀特 红色 叫玛丽 上下快速移动 但是我想要这个输出 姓名 玛丽·怀特 鲍勃·瑞德 如果不使用pandas,我该怎么做呢?下面的代码将对dict的键进行排序(这样,对于相同的数据,您每次都会得到相同的结果),并以您提供的格式打印dict,其中包含任意数量的键和dict值 dict1 = {'Name': ['Mary','

我有这本字典:

dict1 = {'Name': ['Mary','Bob'],'Surname': ['White','Red']}
如果我进行打印,我有以下输出:

姓怀特
红色
叫玛丽
上下快速移动
但是我想要这个输出

姓名
玛丽·怀特
鲍勃·瑞德

如果不使用pandas,我该怎么做呢?

下面的代码将对dict的键进行排序(这样,对于相同的数据,您每次都会得到相同的结果),并以您提供的格式打印dict,其中包含任意数量的键和dict值

dict1 = {'Name': ['Mary','Bob'],'Surname': ['White','Red']}
sorted_keys = sorted(dict1.keys())

spacing = 10
print_sheme = ('{:<' + str(spacing) + '}')*len(list(dict1.values())[0])

print(print_sheme.format(*sorted_keys))
for i in range(len(list(dict1.values())[0])):
    values_to_print = [dict1[key][i] for key in sorted_keys]
    print(print_sheme.format(*values_to_print))

下面的代码将对dict的键进行排序(以便每次都能得到相同的数据),并以dict中任意数量的键和值提供的格式打印dict

dict1 = {'Name': ['Mary','Bob'],'Surname': ['White','Red']}
sorted_keys = sorted(dict1.keys())

spacing = 10
print_sheme = ('{:<' + str(spacing) + '}')*len(list(dict1.values())[0])

print(print_sheme.format(*sorted_keys))
for i in range(len(list(dict1.values())[0])):
    values_to_print = [dict1[key][i] for key in sorted_keys]
    print(print_sheme.format(*values_to_print))

这是一个非常简单的实现,可以处理任意键、不均匀列表和动态大小的列:

def column_print(d, spacing=2):
    columns = [[x] + y for x, y in zip(d.keys(), d.values())]
    col_widths = [spacing + max([len(x) for x in e]) for e in columns]

    for i in range(max([len(x) for x in columns])):
        for w, col in zip(col_widths, columns):
            print((col[i] if i < len(col) else "").ljust(w), end="")
        print()

column_print({'Name': ['Mary','Bob','Mark'], 'Surname': ['White','Red','Blue','Black'], 'MI': ['S','A']})

这是一个非常简单的实现,可以处理任意键、不均匀列表和动态大小的列:

def column_print(d, spacing=2):
    columns = [[x] + y for x, y in zip(d.keys(), d.values())]
    col_widths = [spacing + max([len(x) for x in e]) for e in columns]

    for i in range(max([len(x) for x in columns])):
        for w, col in zip(col_widths, columns):
            print((col[i] if i < len(col) else "").ljust(w), end="")
        print()

column_print({'Name': ['Mary','Bob','Mark'], 'Surname': ['White','Red','Blue','Black'], 'MI': ['S','A']})

答案不那么笼统,但要简短得多。只需迭代两个列表(但您可以将其扩展为需要同时引用的列表数量):


一个不太笼统但简短得多的答案。只需迭代两个列表(但您可以将其扩展为需要同时引用的列表数量):