[英]Add a value to every element in a list
我有这个:
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)]
非常感谢您的帮助。
您可以使用(嵌套)列表理解( [Python 3.Docs]: Data Structures - List Comprehensions )。
需要注意的是,在当前的 state 中,每个坐标元素都是一个字符串,需要进行一些处理才能从中提取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)]
你需要
float
100
使用列表理解
coordinates = [(*list(map(float, item.split(","))), 100) for item in coordinates]
使用循环
result = []
for item in coordinates:
values = item.split(",")
result.append((float(values[0]), float(values[1]), 100))
您需要遍历所有坐标,用逗号分隔它们(以获取 x 和 y),然后使用这些值和 100 创建一个元组,然后您可以将 append 放到一些新列表中
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'
]
new_coords = []
for coord_pair in coordinates:
coord_pair = coord_pair.split(",")
new_coords.append((float(coord_pair[0]), float(coord_pair[1]), 100))
new_coords
变量是:
[
(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)
]
请注意,我不确定您是否要将 100 作为 int 或 float,如果您需要 float,只需将100
更改为float(100)
或100.0
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.