【问题标题】:How to get particular element from list of tuples如何从元组列表中获取特定元素
【发布时间】:2021-02-18 08:58:06
【问题描述】:

我有这个元组列表:

l1 = [(1, 8), (6, 8), (8, 7), (2, 6)]

我想将每个元组的第一个元素与下一个元组的第一个元素进行比较 如何访问下一个元组的第一个元素?

由于操作列表比元组要容易一些,所以我首先将其作为列表列表如下:

l1 = [[1, 8], [6, 8], [8, 7], [2, 6]]

然后尝试了这个:

for i in l1:
    if l1[i][1] == l1[i+1][1]:
...

但是 l1[i+1][1] 不起作用 我在 (i+1) 代码中做错了什么

【问题讨论】:

  • 可以在这种情况下使用元组,它不应该造成任何障碍。因为i+1,您可能会遇到IndexError。所以,更新你的循环范围直到len(l1)-1 并使用迭代器来访问列表/元组中的值。
  • 您实际上是在迭代列表的元素,而不是索引:当您执行for i in l1 时,您将获得列表的第一个元素,而不是元素的索引。正如第一个答案中所建议的,要获取索引,您应该使用 range

标签: python-3.x list tuples


【解决方案1】:

尝试使用列表长度为 -1 的范围:

for i in range(len(l1) - 1) :
    if l1[i][0] == l1[i+1][0]:
         ...

这样你在到达列表的最后一个成员时不会得到 indexError。

【讨论】:

    【解决方案2】:

    在遍历元素时比较相邻元素时,请始终确保您的停止条件是倒数第二个元素。

    此外,如果您要比较第一个元素,您的索引应该从 0 而不是 1 开始。

    for i in range(len(l1)-1):
        if l1[i][0] == l1[i+1][0]:
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      • 2020-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多