相关疑难解决方法(0)

将带有赋值的循环转换为理解

将循环转换为理解很简单:

mylist = []
for word in ['Hello', 'world']:
    mylist.append(word.split('l')[0])
Run Code Online (Sandbox Code Playgroud)

mylist = [word.split('l')[0] for word in ['Hello', 'world']]
Run Code Online (Sandbox Code Playgroud)

但是当循环涉及为引用分配值时,我不确定如何继续.

mylist = []
for word in ['Hello', 'world']:
    split_word = word.split('l')
    mylist.append(split_word[0]+split_word[1])
Run Code Online (Sandbox Code Playgroud)

理解最终看起来像这样:

mylist = [word.split('l')[0]+word.split('l')[1] for word in ['Hello', 'world']]
Run Code Online (Sandbox Code Playgroud)

这计算word.split('l')多次,而循环仅计算一次并保存参考.我尝试过以下方法:

mylist = [split_word[0]+split_word[1] for word in ['Hello', 'world'] with word.split('l') as split_word]
Run Code Online (Sandbox Code Playgroud)

失败,因为with不这样做,并且:

mylist = [split_word[0]+split_word[1] for word in ['Hello', 'world'] for split_word = word.split('l')]
Run Code Online (Sandbox Code Playgroud)

这也不起作用.我知道通过拆包*,**但我不确定这里适合的地方.是否有可能将这些类型的循环变成理解,希望以一种整洁的方式?

python

6
推荐指数
2
解决办法
367
查看次数

标签 统计

python ×1