2

有没有一种简单的方法可以将指标函数应用于列表?即我有一个包含一些数字的列表,我想返回另一个相同大小的列表,例如,正数在原始列表中的列表和负数在原始列表中的零。

4

3 回答 3

10

只需使用列表理解:

>>> orig = [-3, 2, 5, -6, 8, -2]
>>> indic = [1 if x>0 else 0 for x in orig]
>>> indic
[0, 1, 1, 0, 1, 0]
于 2012-12-23T02:48:27.290 回答
8

列出理解

bysign = [int(x >= 0) for x in somelist]

这是一个演示。

于 2012-12-23T02:48:54.790 回答
1

为了产生你的例子的结果,我可能会做

cmp_list=map(cmp, your_list)
one_zero_list=[]
for item in cmp_list:
    if item < 0:
        one_zero_list.append(0)
    elif item==0:
        one_zero_list.append(0) #you didnt actually say what to do with 0
    else:
        one_zero_list.append(1)
于 2012-12-23T03:39:23.633 回答