我有以下问题: 我创建了一个数组,然后我把它变成了一个列表,我想再添加两个值。我尝试过追加和插入,但我得知错误信息:' NoneType'对象没有属性' insert'。这意味着我的列表不是列表。这是我想要做的:
f = 25
bi = np.arange(-f, f + 5, 5)
beta = bi.tolist()
print "beta:", beta
d = np.arange(-f, f + 5, f / 3)
di = d.tolist()
print "di:", di
dj = di.insert(1, -f / 2)
print "dj:", dj
dk = dj.insert(5, f / 2)
dw = sorted(dk)
delta = [round(elem, 0) for elem in dw]
print "delta:", delta
有谁知道我做错了什么,或者Imake怎么可行呢?而且"排序"似乎也没有工作。
答案 0 :(得分:1)
问题出在第9行: list insert方法不返回任何内容(表示None),
dj=di.insert(1,-f/2)
所以 dj 将被分配无 所以这个陈述会引起错误。
dk=dj.insert(5,f/2)
现在试试这个:
f=25
bi=np.arange(-f,f+5,5)
beta=bi.tolist()
print "beta:", beta
d=np.arange(-f,f+5,f/3)
di=d.tolist()
print "di:", di
di.insert(1,-f/2)
print "di:", di
di.insert(5,f/2)
dw=sorted(di)
delta=[round(elem, 0) for elem in dw]
print "delta:", delta
答案 1 :(得分:0)
insert()
和append()
并未返回新列表,因此您无法将其分配给dj
di.insert(1,-f/2)
print "di:", di
di.insert(5,f/2)
print "di:", di
dw = sorted(di)
答案 2 :(得分:0)
你的问题在于以下几点:
dj=di.insert(1,-f/2)
dk=dj.insert(5,f/2)
di.insert()
在列表di
中插入内容并返回None
,因此您将None
分配给dj
。
然后,您试图在“值”insert()
中调用函数None
,但没有它,因此您收到错误。
答案 3 :(得分:0)
是的,这是因为di.insert()实际上没有返回任何东西,这就是为什么dj是一个NoneType对象。
改为
public class ModuleListToModuleDefineConverter : System.Windows.Data.IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is ModuleList)
{
ModuleList modlist = value as ModuleList;
string paramList = parameter as string;
string[] pars = paramList.Split(',');
int idx = modlist.getItemIndex(pars[0]);
if (idx != -1)
{
switch (pars[0])
{
case "SOMEMODID":
switch (pars[1])
{
case "SomeProperty":
return (modlist.Items[idx] as SomeModule).C0x10;
}
break;
case "SOMEOTHERMODID":
switch (pars[1])
{
case "SomeOtherProperty":
return (modlist.Items[idx] as SomeOtherMod).SomeOtherProperty;
}
break;
}
}
return false;
}
else
{
return false;
}
}
public object ConvertBack(object obj, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return null;
}
}