将键值元组转换为逗号字符串

2024-09-18 01:43:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python元组,格式如下:

({'day': '03/06', 'stock': 10}, {'day': '04/06', 'stock': 12}, {'day': '05/06', 'stock': 5})

我希望每个密钥对都有一个逗号分隔的字符串:

days = '03/06, 04/06, 05/06'
stocks = '10, 12, 5'

我使用了一个带有range和len的循环来提取值,但我认为这不是最优的

我尝试了thisthis建议,但没有得到我想要的结果。 有没有更好的方法不用循环就能得到这些值

谢谢


Tags: 方法字符串len格式stock密钥rangethis
2条回答

使用列表理解:

inp = ({'day': '03/06', 'stock': 10}, {'day': '04/06', 'stock': 12}, {'day': '05/06', 'stock': 5})
days = ', '.join([x['day'] for x in inp])
stocks = ', '.join([str(x['stock']) for x in inp])
print(days)    # 03/06, 04/06, 05/06
print(stocks)  # 10, 12, 5

您可以通过将序列映射到operator.itemgetter,从DICT的输入序列中提取所需键的值,然后使用zip将日股对序列转换为两个日股值序列

假设您的输入序列存储在data中:

from operator import itemgetter

days, stocks = zip(*map(itemgetter('day', 'stock'), data))

相关问题 更多 >