我正在尝试替换元组列表中的元组中的值。
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)
此代码目前无效。有人可以帮忙吗? 当前输出显示
('sku','item','bro')
预期输出为:
('sku','item,item','bro')
答案 0 :(得分:1)
我认为将更新的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)
输出:
[('sku1', 'item1,item', 'bro1'), ('sku2', 'item2', 'bro2')]
答案 1 :(得分:0)
当您想要使用可修改的元素时,列表是有用的数据结构。元组是不可变的。当前代码对于大量数据可能效率低下,因为您经常将元组转换为列表,修改元素并返回元组。以下代码执行相同但适用于列表。
recordlist = [['sku','item','bro'],['sku1','item1','bro1']]
for itemlist in recordlist:
if itemlist[0] == 'sku':
itemlist[1] = itemlist[1]+',item'
print(tuple(itemlist))