【问题标题】:How would I accomplish this with nested list comprehension?我将如何通过嵌套列表理解来实现这一点?
【发布时间】:2012-12-03 22:25:48
【问题描述】:

只是想知道我将如何完成这样的事情作为具有列表理解的 1 衬里,只需简单地从 0 中减去列表索引 1,对于主列表的每个子列表。

value = [[-20, 20], [-20, 20], [32, 32]]
value[0] = value[0][0] - value[0][1]
value[1] = value[1][0] - value[1][1]
value[2] = value[2][0] - value[2][1]

【问题讨论】:

  • 要弄清楚如何将某些东西写成列表推导式,您只需想象将其写成一个循环——new_values = []for sublist in value: new_value = sublist[0] - sublist[1]new_values.append(new_value)。然后你放弃追加并把new_value放在第一位,但保持for循环顺序相同:new_values = [sublist[0]-sublist[1] for sublist in value]。对于嵌套的 listcomps,它的工作方式相同。

标签: python list python-2.7 list-comprehension


【解决方案1】:

简单:

value = [v[0] - v[1] for v in value]

【讨论】:

  • 就像一个魅力,谢谢队友,并说我也想 abs() 从减法中得到的值,这可以很容易地在同样的理解下完成,还是我最好只做 value = [abs(v) for v in value] 作为单独的行
  • @user1908180:只需添加abs()[abs(v[0] - v[1]) for v in value]。每个循环都会计算左侧表达式,您可以随意扩展它。
【解决方案2】:
new_values = [ v[0] - v[1] for v in values ]

【讨论】:

    【解决方案3】:
        python 3.2
    
        [(v-i) for v,i in values]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-19
      • 1970-01-01
      相关资源
      最近更新 更多