列表对象上的“ TypeError:'tuple'对象不支持项目分配”

问题描述

我使用sqlite3数据库导入了一个表,然后将其转换为列表,即使type()函数也返回该类是一个列表,但是当我尝试更改一个列表时,它仍然给我该错误消息细胞的数量

这是我的代码

import sqlite3

conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("SELECT * FROM table1")
table = list(c.fetchall())
print(type(table))

table[0][0] = '10'

输出

<class 'list'>
Traceback (most recent call last):
  File "PATH",line 9,in <module>
    table[0][0] = '10'
TypeError: 'tuple' object does not support item assignment

任何人都可以告诉我怎么了吗?

解决方法

您可以使用map函数将元组列表转换为列表列表。

namespace Microsoft.eShopWeb.Infrastructure.Data
{
    public class OrderRepository : EfRepository<Order>,IOrderRepository
    {
        public OrderRepository(CatalogContext dbContext) : base(dbContext)
        {
        }

        public Task<Order> GetByIdWithItemsAsync(int id)
        {
            return _dbContext.Orders
                .Include(o => o.OrderItems)
                .Include($"{nameof(Order.OrderItems)}.{nameof(OrderItem.ItemOrdered)}")
                .FirstOrDefaultAsync(x => x.Id == id);
        }
    }
}

然后,假设存在这样的元素,您将可以重新分配table = list(map(list,table))