gpt4 book ai didi

Python 匹配列表的长度与列不等

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:40 25 4
gpt4 key购买 nike

你能否将一个长度不等的列表的列表写入一系列列中,同时匹配另一个列表的顺序?

order = ['bx', 'cs', 'lb', 'pc']

totals = [
[{'unit': 'pc', 'sum': Decimal('3.00')}],
[{'unit': 'bx', 'sum': Decimal('3.00')}, {'unit': 'pc', 'sum': Decimal('16.00')}],
[{'unit': 'bx', 'sum': Decimal('6.00')}, {'unit': 'lb', 'sum': Decimal('24.00')}, {'unit': 'pc', 'sum': Decimal('63.00')}],
[{'unit': 'pc', 'sum': Decimal('36.00')}],
[{'unit': 'bx', 'sum': Decimal('31.00')}]
]

desired_format = [
['', '', '', '3.00 pc'],
['3.00 bx', '', '', '16.00 pc'],
['6.00 bx', '', '24.00 lb', '63:00 pc'],
['', '', '', '36:00 pc'],
['31.00 bx', '', '', ''],
]

我已在下面尝试过,但如果 4 个按顺序排列的单元都不存在,它就无法按预期工作。

desired_format = [[]]
for total in totals:
data = []
for idx, um in enumerate(total):
if um['unit'] == order[idx]:
data.append(str(um['sum'] + ' ' + str(um['unit'])))
else:
data.append('')
desired_format.append(data)

我也试过这个,结果是有太多空列和不均匀/无序的列

desired_format = [[]]
for total in totals:
data = []
for um in total:
for unit in order:
if um['unit'] == unit:
data.append(str(um['sum'] + ' ' + str(um['unit'])))
else:
data.append('')
desired_format.append(data)

最佳答案

我建议您根据您的原始帖子使用以下代码:

desired_format = []
for total in totals:
data = []
for orderValue in order:
found = False
for um in total:
if um['unit'] == orderValue:
found = True
break
if found:
data.append(str(um['sum'] + ' ' + str(um['unit'])))
else:
data.append('')
desired_format.append(data)

print(desired_format)

关于Python 匹配列表的长度与列不等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49299501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com