我的猜测:
根据报错信息,可以看出在执行res.plot(ll1)时出现了问题。
可能的原因是ListLiteral对象无法直接传递给res.plot()函数,需要将其转换为Python的列表类型。你可以尝试使用ListLiteral.to_list()方法将ll1转换为Python的列表,然后再传递给res.plot()函数。修改后的代码如下:
from python import Python
def main():
a = [1.1, 2.2, 4.4]
l1 = List[Int]()
l1.append(1)
l1.append(2)
l1.append(3)
ll1 = ListLiteral(l1)
res = Python.import_module("matplotlib.pyplot")
res.plot(ll1.to_list()) # Convert ll1 to Python list
res.show()
这样修改后,应该能够成功执行res.plot(ll1.to_list()),并且绘制出相应的图形。
关于ListLiteral的操作,根据报错信息,可能确实无法进行切片、追加、删除等操作。ListLiteral对象是不可变的,因此无法修改其内容。如果需要进行这些操作,可能需要先将ListLiteral对象转换为Python的列表类型进行操作。
最后,如果想在声明List类型的变量时直接赋予初始列表,可以采用以下方式:
li: List[Int] = [1, 2, 3]