首页 > 解决方案 > 为列表中的每个元素添加一个值

问题描述

我有这个:

coordinates =
['54.9712958,-1.6094327',
 '54.9697686,-1.6138101',
 '54.969436,-1.6154838',
 '54.9691035,-1.6177368',
 '54.9685369,-1.619947',
 '54.968463,-1.6229939']

我想要这样的东西(将 100 添加到列表中的每个值):

coordinates =
[(54.9712958,-1.6094327,100),
 (54.9697686,-1.6138101,100),
 (54.969436,-1.6154838,100),
 (54.9691035,-1.6177368,100),
 (54.9685369,-1.619947,100),
 (54.968463,-1.6229939, 100)]

非常感谢您的帮助。

标签: pythonpython-3.xloops

解决方案


您可以使用(嵌套)列表理解([Python 3.Docs]: Data Structures - List Comprehensions)。

需要注意的一点是,在当前状态下,每个坐标元素都是一个字符串,需要进行一些处理才能从中提取float

>>> coordinates = ['54.9712958,-1.6094327', '54.9697686,-1.6138101', '54.969436,-1.6154838', '54.9691035,-1.6177368', '54.9685369,-1.619947', '54.968463,-1.6229939']
>>>
>>> [(*(float(item1) for item1 in item0.split(",")), 100) for item0 in coordinates]
[(54.9712958, -1.6094327, 100), (54.9697686, -1.6138101, 100), (54.969436, -1.6154838, 100), (54.9691035, -1.6177368, 100), (54.9685369, -1.619947, 100), (54.968463, -1.6229939, 100)]

推荐阅读