Skip to main content
 首页 » 编程设计

python之有什么方法可以用列表理解来转换这个 for 循环

2025年05月04日10zhoujg

我问的原因是in合并了各种数据结构,dict,list,string。

bffer = "" 
dict_size = 128 
for character in string: 
    appnd_bffer = bffer + character 
    if appnd_bffer in codebook: 
        bffer = appnd_bffer 
    else: 
        output_list.append(codebook[bffer]) 
        codebook[appnd_bffer] = dict_size 
        dict_size += 1 
        bffer = character 

我是列表理解的新手,所以如果可能的话我真的可以使用解释。干杯。

请您参考如下方法:

循环目前依赖于能够分配给bffer。因为赋值是一个语句,而列表推导式只能包含表达式,将其转换为列表推导式将需要很多难以理解的可变对象技巧。

因此,将其转换为列表理解会导致不可读的困惑,没有任何明显的好处(删除 list.append() 调用的任何速度优势将被可变对象抵消操纵)。