繁体   English   中英

为列表中的每个元素添加一个值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM