【问题标题】:Python - Return integer value for list enumerationPython - 返回列表枚举的整数值
【发布时间】:2016-10-19 18:26:48
【问题描述】:

有没有更简洁的方法来获取此代码中列表项位置的整数值:

a = ['m', 'rt', 'paaq', 'panc']
loc = [i for i, x in enumerate(a) if x == 'rt']
loc_str = str(loc).strip('[]')
loc_int = int(loc_str)
id_list = a[loc_int + 1:]
print id_list

以列表形式返回 'rt' 之后的所有项目 ['paaq', 'panc']

【问题讨论】:

  • 我认为重要的是您要意识到您不需要将列表 loc 转换为 str 只是为了获取第一个元素。只需使用a[loc[0]+1:]
  • 您知道enumerate,您使用列表推导式,但您不了解Python Tutorial 的第一部分中介绍的切片?这真是太棒了。

标签: python enumerate


【解决方案1】:

是的,使用list.index()

a = ['m', 'rt', 'paaq', 'panc']
id_list = a[a.index('rt')+1:]
assert id_list == ['paaq', 'panc']

或者,最小限度地改变你的程序:

a = ['m', 'rt', 'paaq', 'panc']
loc_int = a.index('rt')
id_list = a[loc_int + 1:]
print id_list

参考资料:

【讨论】:

    【解决方案2】:
    a[a.index('rt') + 1:]
    

    这是在做slicing 数组,从a.index('rt') 开始。没有指定结束 :] 意味着我们想要直到列表的末尾。

    【讨论】:

      猜你喜欢
      • 2019-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      相关资源
      最近更新 更多