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

San*_*osh 2 python tuples list

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

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)
Run Code Online (Sandbox Code Playgroud)

此代码当前不起作用。有人可以帮忙吗?当前输出显示

('sku','item','bro')
Run Code Online (Sandbox Code Playgroud)

预期输出为:

('sku','item,item','bro')
Run Code Online (Sandbox Code Playgroud)

stu*_*ent 5

我认为将更新分配给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)
Run Code Online (Sandbox Code Playgroud)

输出:

[('sku1', 'item1,item', 'bro1'), ('sku2', 'item2', 'bro2')]
Run Code Online (Sandbox Code Playgroud)