Python:更改元组列表中的元组

2024-06-16 13:06:36 发布

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

我试图替换元组列表中元组中的值。在

recordlist = [(sku,item,bro),(sku1,item1,bro1),...]

for item in recordlist:
    itemlist = list(item)
    if itemlist[0] == 'sku':
        itemlist[1] = itemlist[1]+',item'
        item = tuple(itemlist)

        print(item)

此代码当前不工作。有人能帮忙吗? 电流输出显示

^{pr2}$

预期产量为:

('sku','item,item','bro')

Tags: in列表forifitemlist元组bro
2条回答

当您想要使用可修改的元素时,列表是有用的数据结构。元组是不变的。当您不断地将元组转换为列表、修改元素并返回元组时,当前代码对于大量数据可能效率低下。下面的代码执行相同的操作,但是可以处理列表。在

recordlist = [['sku','item','bro'],['sku1','item1','bro1']]

for itemlist in recordlist:
    if itemlist[0] == 'sku':
        itemlist[1] = itemlist[1]+',item'
        print(tuple(itemlist))

我认为将更新的tuple分配给list中的相应索引可以解决这个问题,因为tuples是不可变的。为了保留相应的索引,可以在遍历列表时使用enumerate。您可以尝试以下操作:

recordlist = [('sku1','item1','bro1'),('sku2','item2','bro2')]

for index, item in enumerate(recordlist):
    itemlist = list(item)
    if itemlist[0] == 'sku1':
        itemlist[1] = itemlist[1]+','+'item'
    item = tuple(itemlist)

    recordlist[index] = item

print(recordlist)

输出:

^{pr2}$

相关问题 更多 >