Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python列表中索引复数的步骤_Python - Fatal编程技术网

在Python列表中索引复数的步骤

在Python列表中索引复数的步骤,python,Python,在我的Python脚本行中 a=function(i) 所以a是一个结果列表。在此列表中,将有四个值,一个负数、一个正数和两个复数。只有积极的一个是有用的,我想索引它。我为索引写这个,但它不起作用 a=function(i) for b in a: if a>0 and type(a)==type(0.1): return a 那么我该如何应对呢。谢谢。您在函数外部调用return,这是不合法的 要从列表中获取正整数,请假设“正数”和“负数”为floattype

在我的Python脚本行中

a=function(i)
所以a是一个结果列表。在此列表中,将有四个值,一个负数、一个正数和两个复数。只有积极的一个是有用的,我想索引它。我为索引写这个,但它不起作用

a=function(i)
for b in a:
    if a>0 and type(a)==type(0.1):
        return a

那么我该如何应对呢。谢谢。

您在函数外部调用
return
,这是不合法的

要从列表中获取正整数,请假设“正数”和“负数”为
float
type1:

这将把列表中第一个正实数的索引放入
索引中

它的工作原理

基本上,这段代码遍历列表,并检查元素的类型。如果元素是实数,则检查其正性。如果为正,则将其索引的值放入
索引
,循环停止



1:如果您的意思是“虚部为零的
复杂
对象”,则将
If type(v)=float和v>=0替换为
If v.imag==0和v.real>=0
。但是,在您的代码中,您编写了
type(a)==type(0.1)
,因此我假设
a
应该是一个
float

我必须几乎准确地解决这个问题,并编写了一个函数来查找正根,如果没有,则引发一个ValueError:

def find_positive_root(a):
    for b in a:
        if type(b) == complex or b<0:
            continue
        return b
    raise ValueError('No positive root in {}'.format(a))
def find_positive_root(a):
对于a中的b:
如果类型(b)==复数或b1查找正根([-1.,-4j,-2.3,4j])
在查找正根(a)
4继续
5返回b
---->6 raise VALUERROR({}格式中没有正根(a))
ValueError:在[-1.0,(-0-4j),-2.3,4j]中没有正根

是的。最后我试过了。下面是我的代码:

a=function(i)
for v in a:
    if  type(v) is sy.add.Add:
        pass
    elif v > 0:
        return v
    else:
        pass
return v

注意:我使用symphy解函数(I),结果列表中的复数为symphy.add.add

你的函数(i),它返回什么。。。什么是b?为什么把
a
放在if语句中?它是一个列表。您需要检查列表项中的
b
是否为正数
int
3
,或正数
float
3.0
,甚至是一个没有虚部的正复数,如
3+0j
?正数和负数都是浮点数,而不是int。它仍然不起作用。Spyder告诉我:局部变量'index'被赋值给,但从未使用过。所以,我可以再次得到你的帮助,谢谢@KensZheng当然,
索引
在我向您提出的代码中没有使用。但它包含您要查找的索引的值。为了说服自己,请在
for
循环之后打印
索引
,并打印
a[index]
。我编辑了我的答案,以突出这一点。另外,我的代码中有一个错误,所以我更正了它。现在它有效地将索引放入
索引中
。为什么要测试
类型(v)==int
?OP并没有说那个数字是整数。@tobias_k好的,我不知道为什么我假设它是整数来修正它。对此我很抱歉。在列表a中,负数和正数都是float,而不是int。我再次被告知:TypeError:列表索引必须是整数,而不是NoneType。那又是为什么呢。衷心感谢!
In [6]: find_positive_root([-4.3, 2.3j, 3, (-4+8j)])
Out[6]: 3

In [7]: find_positive_root([1., -4j, -2.3, 4j])
Out[7]: 1.0

In [8]: find_positive_root([-1., -4j, -2.3, 4j])
     ...: 
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-138-a4ed7675f551> in <module>()
----> 1 find_positive_root([-1., -4j, -2.3, 4j])

<ipython-input-132-9cd37f48e3bb> in find_positive_root(a)
      4             continue
      5         return b
----> 6     raise ValueError('No positive root in {}'.format(a))

ValueError: No positive root in [-1.0, (-0-4j), -2.3, 4j]
a=function(i)
for v in a:
    if  type(v) is sy.add.Add:
        pass
    elif v > 0:
        return v
    else:
        pass
return v