【问题标题】:How to get item from previous list in a list of lists in Python?如何从 Python 列表中的前一个列表中获取项目?
【发布时间】:2018-02-23 01:39:59
【问题描述】:

我有一个列表和另一个这样的列表:

new_list = []

lst_of_lst = [['MHK', 549, 'ABC', 3], ['OMK', 567, 'TTT', 8], ['KDH', 675, 'TGH' , 12]]
lst = ['MHK', 553, 'ABC']

我必须观察lst_of_lst[1] 何时大于lst[1],然后“返回”到上一个列表以获取lst_of_lst[3],在这种情况下为“3”,因为 553(来自 lst)介于 549 和567. 3 之后应该附加到new_list,但这不是问题。

我试过了:

if lst_of_lst[1] > lst[1]:
    new_list.append(lst_of_lst[3][:-1])

但这不起作用。更具体地说:追加应该如何从 lst_of_lst 中的最后一个列表中获取不大于列表 [1] 的数字。 希望你能理解我的问题。

有人可以帮帮我吗? 提前致谢。

【问题讨论】:

  • 请用您已经尝试过的代码更新您的问题,并告诉我们确切的问题是什么,以便我们更好地理解问题并相应地帮助您。
  • 我试图更具体地说明我的问题。我对此很陌生。谢谢你让我知道,我希望现在更清楚了。
  • 如果键小于排序值中的第一个值应该是什么行为?
  • lst_of_lst[3] 这没有意义,你只有三个元素。另外,您对列表大于列表元素的具体理解是什么?
  • @DavisHerring 那么它应该只是通过了。

标签: python python-3.x list


【解决方案1】:

指出您的解决方案有什么问题 -

  • lst_of_lst[1] > lst[1] - 在这里你将一个列表与一个值进行比较,这会给你一个 TypeError。
  • 您正在尝试附加一个不存在的元素 - lst_of_lst[3][:-1] - lst_of_lst[3] 超出范围,索引仅变为 0、1、2。最后,[:-1] 设置一系列元素,直到最后一个,而不是最后一个值。

您的问题非常晦涩,因为不清楚您究竟想要做什么才能概括解决方案,即迭代地遍历所有元素) - 否则您可以手动执行此操作。 要具体回答您的问题,您应该试试这个

new_lst = [] if lst_of_lst[1][1] > lst[1]: new_lst.append(lst_of_lst[0][-1])

【讨论】:

    猜你喜欢
    • 2018-07-15
    • 2017-07-15
    • 2020-05-06
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多