【问题标题】:create variable for one tuple item at the end of a list在列表末尾为一个元组项创建变量
【发布时间】:2015-06-02 20:06:38
【问题描述】:

我有一个名为 list_cs 的元组列表:

('2015-05-14', 685)
('2015-04-15', 680)
('2015-03-20', 675)
('2015-02-11', 680)
('2015-01-13', 685)
('2014-12-10', 685)
('2014-11-25', 685)
('2014-10-09', 685)
('2014-09-15', 690)
('2014-08-21', 680)
('2014-07-22', 680)

对于前 5 个元组,我想将元组第二个位置的分数分配给唯一变量。我是这样做的:

cs0 = [x[1] for x in list_cs[0:1]]
cs1 = [x[1] for x in list_cs[1:2]]
cs2 = [x[1] for x in list_cs[2:3]]
cs3 = [x[1] for x in list_cs[3:4]]
cs4 = [x[1] for x in list_cs[4:5]]

我还想将最后一个元组的第二个位置的分数分配给一个唯一变量。我永远不知道这份名单可能有多长。但我只想要最后一个。但是,我无法弄清楚如何获得最后一个。

我尝试了以下一些方法,但没有一个有效。

cs1st = [x[1] for x in list_cs[-1:-0]]
cs1st = [x[1] for x in list_cs[-0:-1]]
cs1st = [x[1] for x in list_cs[:-1]]
cs1st = [x[1] for x in list_cs[-1]]

我该怎么做?

【问题讨论】:

  • 为什么要为这些东西设置不同的变量?这就是列表和元组之类的东西!
  • 为什么需要列表理解? cs1st = list_cs[-1][1] 会起作用吗?
  • 我想比较,例如,第一个分数与第三个分数或第五个分数与第二个分数,最后一个分数与第一个分数。我不擅长编码,所以我更容易像“如果 cs2 > cs0”那样做,做任何事情。我确信有更好的方法;只是不知道。

标签: python list tuples


【解决方案1】:

您不需要列表推导来获取一项。

cs0 = list_cs[0][1]
cs1 = list_cs[1][1]
…

或者,概括地说,

cs0, cs1, cs2, cs3, cs4 = [list_cs[i][1] for i in range(5)]

要获得最后的分数:

cs1st = list_cs[-1][1]

【讨论】:

  • 不错!这是一种更简洁的方式来完成我想做的所有事情。
猜你喜欢
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多