使用Python实现列表理解,将float分类为string

2024-05-20 21:28:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过以下三个条件将清单中的浮动状态转换为“危机”、“低迷”和“易受影响”状态。有没有更简单的列表理解方法?甚至是地图?在

sector_g = np.random.randn(100) # 1 sector growth rates
sector_epi_states = [] #sector states

for i in range(0,100):
    if sector_g[i] <0 and sector_g[i-1] <0 and sector_g[i] != sector_g[0]:
        sector_epi_states.append('crisis')
    elif sector_g[i] <0:
        sector_epi_states.append('downturn')
    elif sector_g[i] >0:
        sector_epi_states.append('sucpetible')

Tags: and方法列表状态np地图random条件
3条回答

这是我的密码-

import numpy as np

sector_g = np.random.randn(100) # 1 sector growth rates
sector_epi_states = [] #sector states    
sector_epi_states = [ 'crisis' if (sector_g[i] < 0 and sector_g[i-1] < 0) else
                     'downturn' if sector_g[i] < 0 else 
                     'sucpetible' if sector_g[i] > 0 else ''
                     for i in range(0,100) ] #sector states
print(sector_g)
print(sector_epi_states)

最简单的代码重写方法如下:

sector_g = [0, -1, 2, 4, 5]
sector_epi_states = [] #sector states

def determine(i, x):
    if x <0 and sector_g[i-1] <0:
        sector_epi_states.append('crisis')
    elif x <0:
        sector_epi_states.append('downturn')
    elif x >0:
        sector_epi_states.append('sucpetible')

[determine(i, x) for i, x in enumerate(sector_g)];
print(sector_epi_states)

这里的主要困难是检查“current”值和前一个值,因此使用enumerate函数。在

希望这有帮助。在

是的,你可以。在我看来,就可读性而言,这并不是一种Python式的方式。在

sector_epi_states = ['crisis' if sector_g[i] <0 and sector_g[i-1] <0 else ('downturn' if sector_g[i] <0 else 'sucpetible') for i in range(100)]

相关问题 更多 >