几周前,我才刚开始学习python,首先要教的一件事是如何操作列表。通常,如果我有一个列表并想要附加一个新元素,它将看起来像这样。
test_list=[1,2,3]
test_list.append(4)
我只是想知道为什么我们不说
test_list=test_list.append(4)
之所以想到这个,是因为通常对于变量“ x”,如果我们要更新其值,我们可以执行以下操作:
x=initial_value
x=new_value
以与列表情况相同的方式,test_list.apppend(4)
是否代表具有test_list
相同元素的列表并包含额外元素4?在哪种情况下,为什么在两种情况下我们都不能使用相同的语法来更新存储信息的变量?在列表的情况下,如果我尝试打印列表,我会得到None
;在x
的情况下,如果我打印x
,我会得到new_value
?
答案 0 :(得分:0)
Python中的列表更多的是类而不是类型。该函数将元素添加到列表中,但不返回任何内容。
答案 1 :(得分:0)
这都是关于面向对象编程的。如果您不熟悉它,请阅读它。简而言之,List<Map<String, ?>> list = new ArrayList<>();
Map<String, Object> row = new HashMap<>();
row.put("state", "State value");
row.put("branch", "Branch value");
row.put("productLine", "Product line value");
// add the row to the list
list.add(row);
// and finaly pass the list to datasource
JRDataSource ds = new JRMapCollectionDataSource(list);
是对象的方法,它属于append
class 。基本上,此方法可以通过两种方式运行:
1)像这样,变异自身对象
和
2)您如何描述,生成新对象(顺便说一句,这是JavaScript中类似的list
方法的行为)
因此,此实现只是语言设计的一部分,这是语言创建者做出的决定,我们只需要以这种方式承认和使用它即可:)