urs*_*rei 4 python functional-programming
我正在返回列表清单,但以下内容似乎比它应该更复杂:
new_list = []
for key, value in group.items():
new_list.extend([['%s%s%s%s%s' % (
ncode, vendor, extra, value['suffix'], tariff),
value['latest_cost'], value['rrp'], value['rb']] for tariff in value['trf']])
return new_list
Run Code Online (Sandbox Code Playgroud)
这并不是特别复杂.您有两个"级别",即您正在扩展到一个级别的组中的项目.为此,它不是很复杂.
一个更实用的方法是将它们全部合并到一个嵌套列表表达式中,我认为这是可能的.但它肯定不会更具可读性,而且我个人认为这是单声道的(即,我不喜欢它).
我个人也会将该列表表达式更改为for循环,以提高可读性.
new_list = []
for key, value in group.items():
for tariff in value['trf']:
name = ''.join(ncode, vendor, extra, value['suffix'], tariff)
new_list.append(name, value['latest_cost'], value['rrp'], value['rb']])
return new_list
Run Code Online (Sandbox Code Playgroud)
嗯,事实上,我会用它制造一个发电机,因为我喜欢它们:
def tariffs(group):
for key, value in group.items():
for tariff in value['trf']:
name = ''.join(ncode, vendor, extra, value['suffix'], tariff)
yield [name, value['latest_cost'], value['rrp'], value['rb']]
Run Code Online (Sandbox Code Playgroud)
您可能还想考虑使用此方法制作对象.只要你有字典列表或字典列表,就应该考虑改编课程.
| 归档时间: |
|
| 查看次数: |
154 次 |
| 最近记录: |