在for循环中使用输入值附加列表

时间:2019-04-10 13:52:55

标签: python list for-loop

我有两个列表,一个空列表(newgr),另一个具有从excel工作表(gr)导入的值。我正在尝试在for循环中遍历列表,以便可以比较和更改某些值,并将已与原始值一起更改的gr中的值附加到newgr中。我尝试了这种格式,但是没有用。

df = pd.read_excel("Well_Logs.xlsx", "SB16", na_values = [-999])
newgr = []
gr = df['GR'].values.tolist()

grclean = int(input('enter your clean value >')) #20 for example
grclay = int(input('enter your clay value >')) #60 for example

for i in gr:

    if i < grclean:
        i==grclean
        newgr.append(i)
    elif i > grclay:
        i==grclay
        newgr.append(i)
    else:
        newgr.append(i)

print(newgr)

我希望列表具有一些新的值,而不是将gr的相同值附加到newgr。

2 个答案:

答案 0 :(得分:2)

您应该使用

i = grclean

grclean分配给i

代替

i == grclean

这是一个比较。

您还可以将整个循环编写为整洁的列表理解:

newgr = [max(grclean, min(grclay, i)) for i in gr]

答案 1 :(得分:0)

df = pd.read_excel("Well_Logs.xlsx", "SB16", na_values = [-999])
newgr = []
gr = df['GR'].values.tolist()

grclean = int(input('enter your clean value >')) #20 for example
grclay = int(input('enter your clay value >')) #60 for example

for i in gr:

    if i < grclean:
        newgr.append(grclean)
    elif i > grclay:
        newgr.append(grclay)
    else:
        newgr.append(i)

print(newgr)