繁体   English   中英

比较元组中的元素

[英]Comparing the elements within tuples

所以我有一个列表 = [(0, [2, 0, 4], 1), (3, [2, 0, 4], 2), (1, [3, 0, 4], 2), (2, [3, 0, 4], 2)] 其中它的元素是包含一个 ID 作为其第一个元素的元组,其中的列表总是包含三个随机整数,然后是一个时间。 假设此列表不会为空。 我正在努力编写代码来比较元组元素的每个单独组件并根据一组标准附加到新列表。 第一个标准是每个元组元素中间的列表。 我想比较每个中间列表相同的元组,所以在我上面的列表中比较列表[0]和列表[1]以及列表[2]和列表[3]。 如果中间有一个元组与任何其他元组一样没有重复列表,则 append 该元组到一个新的空列表。 然后对于元组中具有匹配列表的元素,我想比较这些元组的时间值,如果它是具有匹配中间列表的元组的最低时间值,则该元组将附加到新的空列表。 但是,如果这个值对于具有匹配中间列表的元组是相同的,那么我想比较它们的 ID 并选择最低的 ID 值。 对于上面的示例列表,所需的 output 将是 [(0, [2, 0, 4], 1), (1, [3, 0, 4], 2)] 因为对于具有匹配列表 [2, 0, 4] 时间的最低值为 1,而对于具有匹配列表 [3, 0, 4] 和时间匹配值的元组,最低 ID 值为 1。有什么帮助吗? 如果有什么需要澄清的,我会尽力回答。

如果您给我们提供更多信息会更容易,但是一个好的开始方式是

my_list = [1,2,3,8,0,2]
specific_value=0

for index, value in enumerate(my_list):
    if (value==specific_value) & (0 < index <len(my_list)-1):
        print(my_list[index-1:index+2])
    

可能有更好的解决方案,但这应该为您指明正确的方向。 边界检查确保避免第一个和最后一个元素出现问题

我认为这个代码片段可以帮助你。 您可能还需要检查元素 idx-1、idx 和 idx+1 的可用性以避免 IndexOutOfRangeException。

def f(l, search_term):
    idx = l.index(search_term)
    return [l[idx-1], l[idx], l[idx+1]]

example = [1,2,3,8,0,2]
new_list = f(example, 0)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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