我想初始化一个多维列表。基本上,我想要一个10x10的网格-10个列表的列表,每个列表包含10个项目。
每个列表值都应初始化为整数0。
单行执行此操作的明显方法:myList = [[0]*10]*10
将不起作用,因为它会生成一个包含10个引用的列表,该列表引用一个列表,因此更改任何行中的项都会更改所有行中的项。
我看过的文档讨论了[:]
用于复制列表的方法,但是在使用乘法器时仍然无法使用:myList = [0]*10; myList = myList[:]*10
与效果相同myList = [[0]*10]*10
。
myList.append()
除了创建s循环之外,是否有一种快速有效的方式以这种方式初始化列表?
您可以使用列表推导非常有效地做到这一点:
a = [[0] * number_cols for i in range(number_rows)]
问题内容: 这非常丑陋: 有没有办法在一行上声明这些变量? 问题答案: 上述方法的缺点是,您需要计算左侧的名称数,并且在右侧具有完全相同数量的空列表(例如,通过调用或更明确地)。 最主要的是, 不要 使用类似 也不 这将使所有名称都引用 相同的 空列表!
问题内容: 声明多维数组并为其分配值的正确方法是什么? 这就是我所拥有的: 问题答案: 尝试将适当的行替换为: 您的代码不正确,因为子数组的长度为y,索引从0开始。因此,设置为或将失败,因为索引和超出范围。 ;是初始化矩形多维数组的正确方法。如果希望将其锯齿状(每个子数组的长度可能不同),则可以使用类似于此答案的代码。但是请注意,如果您想要一个完美的矩形多维数组,John关于必须手动创建子数组的主
问题内容: 我打算初始化一个长度为n的列表列表。 但是,这以某种方式将列表链接在一起。 我希望有这样的东西: 有任何想法吗? 问题答案: 问题在于它们在内存中都是完全相同的列表。当使用语法时,得到的是n许多x对象的列表,但是它们都是对同一对象的引用。它们不是不同的实例,而是n对同一实例的引用。 要列出3个不同的列表,请执行以下操作: 这为你提供了3个单独的实例,这是你想要的 类似于 虽然类似于:
考虑如下代码: vector<double> v = { 1, 2, 3.456, 99.99 }; list<pair<string,string>> languages = { {"Nygaard","Simula"}, {"Richards","BCPL"}, {"Ritchie","C"} }; map<vector<string>,vector<int>> years = {
问题内容: 我开始使用python,并尝试使用一个二维列表,最初我在每个地方都填充了相同的变量。我想出了这个: 它提供了所需的结果,但感觉像是一种解决方法。有没有更简单/更短/更优雅的方式来做到这一点? 问题答案: Python中经常出现的一种模式是 这有助于激励列表理解的引入,从而将代码段转换为 它更短,有时更清晰。通常,你养成识别这些习惯的习惯,并经常用理解代替循环。 你的代码两次遵循此模式
说明 用于初始化商城商品和分类,注意此协议列表中的商品将会添加到商城,请避免相同商品多次提交。 建议此协议在首次初始化商城时使用,后续新增/修改直接使用商品分类、商品的相关协议 请求地址 http://api.dc78.cn/Api/mall_init_commodity 请求方式 POST 请求参数 POST数据: data=商品明细数据,格式如下: [ { "name": "小家电", "ra