Python列表上的计算?

Python列表上的计算?,python,list,list-comprehension,Python,List,List Comprehension,我有以下清单: [[54.1757, 57.7807], [61.5786, 64.1535], [67.9584, 83.0], [104.4185, 120.377]] 我要做的是将此列表转换为我有字符串的格式: first_number:second_number-first_number 我名单上的每一双。对于第一对,我将得到以下字符串: "54.1757:3.605" 关于实现这一点的最佳方法有什么建议吗?您可以通过以下方法来实现: 使用列表理解很容易做到这一点 >>

我有以下清单:

[[54.1757, 57.7807], [61.5786, 64.1535], [67.9584, 83.0], [104.4185, 120.377]]
我要做的是将此列表转换为我有字符串的格式:

first_number:second_number-first_number
我名单上的每一双。对于第一对,我将得到以下字符串:

"54.1757:3.605"
关于实现这一点的最佳方法有什么建议吗?

您可以通过以下方法来实现:


使用列表理解很容易做到这一点

>>> list = [[54.1757, 57.7807], [61.5786, 64.1535], [67.9584, 83.0], [104.4185, 120.377]]
>>>
>>> [ {x:y-x} for x, y in list ]
[{54.1757: 3.605000000000004}, {61.5786: 2.5748999999999924}, {67.9584: 15.041600000000003}, {104.4185: 15.9585}]
>>>

第一对实际上是:
54.1757:-3.605
,除非您想要绝对值,或者实际上正在执行
first\u number:second\u number-first\u number
。哎哟,接得好。应该是第二个数字-第一个数字字典理解不能维持顺序。我得到了
{104.41850000001:-15.9584999999987,54.1757000000006:-3.6049999999999969,61.578600000000002:-2.5748999999999924,67.9583999999999997:-15.04160000000003}
,很好,我没有考虑顺序。我更新后的答案使用了列表理解。另外,为什么[1]中有
之类的内容?我刚刚尝试了这个,看起来很有效。事实上,我很惊讶代码这么简洁。不熟悉使用.format。谢谢。输出应该是字符串列表。啊,我的错。错过了那部分。
>>> list = [[54.1757, 57.7807], [61.5786, 64.1535], [67.9584, 83.0], [104.4185, 120.377]]
>>>
>>> [ {x:y-x} for x, y in list ]
[{54.1757: 3.605000000000004}, {61.5786: 2.5748999999999924}, {67.9584: 15.041600000000003}, {104.4185: 15.9585}]
>>>