多行文本输入到字典
Multi-line text input to dictionary
假设我从一个看起来像这样的文本文件中得到多行输入:
(empty string here)
1 -30 2 0
3 0 5 10
等等
我分析了输入并从中形成了一个列表:
lst = [[], [(1, -30), (2, 0)], [(3, 0), (5, 10)]]
假设我想创建一个字典,其中键是行号(从 1 开始),值是一个嵌套字典,其中包含元组的第一个元素作为键,第二个元素作为值:
**lst -> dict:**
dict = {'1': {}, '2': {1: -30, 2: 0}, '3': {3: 0, 5: 10}}
执行此操作的最佳(pythonic)方法是什么?现在花了几个小时试图做到这一点。
谢谢!
lst = [[], [(1, -30), (2, 0)], [(3, 0), (5, 10)]]
print( {str(i): dict(v) for i, v in enumerate(lst, 1)} )
打印:
{'1': {}, '2': {1: -30, 2: 0}, '3': {3: 0, 5: 10}}
假设我从一个看起来像这样的文本文件中得到多行输入:
(empty string here)
1 -30 2 0
3 0 5 10
等等
我分析了输入并从中形成了一个列表:
lst = [[], [(1, -30), (2, 0)], [(3, 0), (5, 10)]]
假设我想创建一个字典,其中键是行号(从 1 开始),值是一个嵌套字典,其中包含元组的第一个元素作为键,第二个元素作为值:
**lst -> dict:**
dict = {'1': {}, '2': {1: -30, 2: 0}, '3': {3: 0, 5: 10}}
执行此操作的最佳(pythonic)方法是什么?现在花了几个小时试图做到这一点。 谢谢!
lst = [[], [(1, -30), (2, 0)], [(3, 0), (5, 10)]]
print( {str(i): dict(v) for i, v in enumerate(lst, 1)} )
打印:
{'1': {}, '2': {1: -30, 2: 0}, '3': {3: 0, 5: 10}}