小编jon*_*e83的帖子

没有索引和项目的Python for循环

是否有可能在python中有一个没有索引和项目的for循环?我有以下内容:

list_1 = []
for i in range(5):
    list_1.append(3)
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但根据pep8编码指南并不好.它说:"未使用的变量'我'".

是否有办法在没有索引和项目的情况下进行for循环(没有while循环)?或者我应该忽略编码指南?

python for-loop pep8

17
推荐指数
2
解决办法
7446
查看次数

如何使用OMPython在Python中调用OpenModelica模型?

我有一个用OMEdit制作的OpenModelica模型.为了得到一个具体的例子,我设计了以下内容:

来自OMEdit的OpenModelica模型名为myGain

现在我想用Python运行模型.我可以通过使用OMPython来做到这一点.导入OMPython并加载文件后,我使用以下命令运行模拟:

result = OMPython.execute("simulate(myGain,numberOfIntervals = 2,outputFormat = \"mat \")")

现在运行模拟并将结果写入文件.

现在我想运行相同的模型,但是常量块的参数不同.

我怎样才能做到这一点?

由于参数被编译到模型中,因此无法对其进行更改.所以我需要的是这样的模型:

myGain使用变量作为参数

是否可以从Python调用模型并将变量"a"设置为特定值?

使用命令OMPython.execute("simulate(...)")我可以指定一些环境变量,如"numberOfIntervals"或"outputFormat",但不能更多.

python modelica openmodelica

7
推荐指数
1
解决办法
2951
查看次数

比较字符串的最后字符

我需要比较matlab中字符串的最后一个字符.本地我会做以下事情:

string = 'foobar';
len_string = length(string);
if len_str_2 >= 3
   str_suffix = str_2(len_str_2 - 2:len_str_2);
   strcmp('bar', str_suffix)
end
Run Code Online (Sandbox Code Playgroud)

有更简单的方法吗?随着strncmp我只能比较第一个n字符.

string matlab

5
推荐指数
1
解决办法
5207
查看次数

Python:如何从成员函数中调用构造函数

这个问题/答案(成员函数中的Python调用构造函数)说可以从成员函数中调用构造函数.

我怎么做?

风格好吗?

我用以下代码尝试了它:

class SomeClass(object):
    def __init__(self, field):
        self.field = field

    def build_new(self):
        self = SomeClass(True)

def main():
    inst = SomeClass(False)
    inst.build_new()
    print(inst.field)

if __name__ == '__main__':
    main()
Run Code Online (Sandbox Code Playgroud)

作为输出我得到:错误

既然我打电话的build_new()方法inst.field应该True与否?

python constructor python-2.7

1
推荐指数
2
解决办法
8008
查看次数

重组/重新排列列表

我有一个 Python 列表,如下所示:

data = [[1, 2, 3], [10, 20, 30]]
Run Code Online (Sandbox Code Playgroud)

现在我需要重组列表,使其看起来像这样:

data_new = [[1, 10], [2, 20], [3, 30]]
Run Code Online (Sandbox Code Playgroud)

我设法通过使用两个 for 循环来解决这个问题:

data = [[1, 2, 3], [10, 20, 30]]

len_data = len(data)
len_dat = len(data[0])
data_new = []

for index_dat in xrange(len_dat):
    dat = []
    for index_data in xrange(len_data):
        dat.append(data[index_data][index_dat])
    data_new.append(dat)

print data_new
Run Code Online (Sandbox Code Playgroud)

最简单/最Pythonic的方法是什么?对我来说,性能不是问题,但拥有良好的性能总是好的。最好有一种解决方案用于就地排序,另一种解决方案是通过创建新列表来实现。

python list

-1
推荐指数
1
解决办法
634
查看次数