在Python列表中做什么功能?

问题描述:

char_set = [False for _ in range(128)] 
    for char in string: 
     val = ord(char) 
     if char_set[val]: 
      # Char already found in string 
      return False 
     char_set[val] = True 

我试图破译这段代码,但不明白char_set在做什么?列表中的部分令人困惑。在Python列表中做什么功能?

+0

注意:当初始化多个相同不可变对象的'list'多次时,执行'char_set = [False] * 128'会更快/更简单。 _immutable_对象的列表('bool',numerics,'tuple','frozenset','str','bytes',你有什么),不要为可变对象做这件事,因为你最终会一堆对同一个可变对象的引用,这很少是你想要的(改变其中的一个)。 – ShadowRanger

[False for _ in range(128)]是一个列表理解,将返回一列128 False s。换句话说,char_set将是[False, False, ...]与128 False_表示一次性值(由range()函数创建的值,但程序不需要执行任何操作,在这种情况下,_是代表range()函数的迭代次数的数字(即0,12等)