我有一个元组列表,其中每个元组都包含 xyz 坐标的字符串表示形式。我需要将元组的第一个和第二个值与字典中的另一组值进行比较(以确定元组中的第一项是起点还是终点)
IE
tuple_list = [('0.1, 0.5, 2.0', '3.0, 5.0, 6.0'), ('0.0, 0.6, 2.0', '4.0, 5.0, 6.0')]
vertex_dict = {'0': '3.0, 5.0, 6.0', '1': '0.0, 0.6, 2.0'}
如果元组中的第一项与顶点列表匹配,我想指出它是“开始”点,而元组中的第二项是“结束”点。
目前我正在使用以下代码完成此操作:
pt_line_dict = {}
for key, value in vertex_dict:
for i, j in tuple_list:
if i == value:
pt_line_dict[key] = (i, j)
elif j == value:
pt_line_dict[key] = (j, i)
else:
pass
Output:
pt_line_dict = {'0': ('3.0, 5.0, 6.0', '0.1, 0.5, 2.0'), '1': ('0.0, 0.6, 2.0', '4.0, 5.0, 6.0')}
元组之间不可能有重复值,并且顶点字典也是唯一的(没有重复键值)。
有没有更有效的方法来避免循环遍历元组列表中的所有值?我认为发电机可能是这样做的一种方式......