代码之家  ›  专栏  ›  技术社区  ›  Ashwin Nanjappa

如何选择函数返回的x元组的某些元素?

  •  2
  • Ashwin Nanjappa  · 技术社区  · 15 年前

    我是巨蟒的新手。考虑函数 str.partition() 它返回一个三元组。如果我只对这个元组的元素0和2感兴趣,那么从这个元组中挑选特定元素的最佳方法是什么?

    我现在可以做以下任何一项:

    # Introduces "part1" variable, which is useless
    (part0, part1, part2) = str.partition(' ')
    

    或:

    # Multiple calls and statements, again redundancy
    part0 = str.partition(' ')[0]
    part2 = str.partition(' ')[2]
    

    我想能做到 某物 像这样,但不能:

    (part0, , part2) = str.partition(' ')
    # Or:
    (part0, part2)   = str.partition(' ')[0, 2]
    
    5 回复  |  直到 12 年前
        1
  •  13
  •   SilentGhost    15 年前

    part0, _, part2 = str.partition(' ')
    

    part0, part2 = str.partition(' ')[::2]
    

    from operator import itemgetter
    part0, part2 = itemgetter(0, 2)(str.partition(' '))
    
        2
  •  4
  •   Lennart Regebro    15 年前

    part0, part1, part2 = str.partition(' ')
    

    part0, part2 = str.partition(' ')[::2]
    

        3
  •  2
  •   Community CDub    7 年前

    Pythonic way to get some rows of a matrix

    def extract(lst, *indices):
        return [lst[i] for i in indices]
    
    item0, item2 = extract(str.partition(' '), 0, 2)
    
        4
  •  1
  •   Kevin Horn    15 年前

    str.split(' ', 1) str.partition(' ')

        5
  •  0
  •   bmu    12 年前

    all_parts = str.partition(' ')
    part0, part2 = all_parts[0], all_parts[2]