Python中如何存储循环迭代的值?代码append仅存else部分求助
解决Python循环生成值存入列表的问题
嘿,我明白你遇到的问题了——你想把循环里所有打印的内容都存到列表里,但目前只有else分支的内容成功追加了对吧?这是因为你之前只在else块里处理了列表追加,却漏掉了if分支的"na"。
咱们来修改一下代码,把两个分支的结果都添加到列表里:
首先,先初始化一个空列表用来存储结果:
result_list = []
然后在循环里,不管是if还是else分支,都把对应的值追加到这个列表里,同时也可以保留你的打印操作(如果需要的话):
for i in d["Cabin new"]: if i == "nan": value = "na" print(value) result_list.append(value) else: value = i[1:] print(value) result_list.append(value)
这样循环结束后,result_list里就包含了你之前打印的所有内容啦!
如果觉得重复代码有点啰嗦,还可以简化成这样,用三元表达式来赋值:
result_list = [] for i in d["Cabin new"]: value = "na" if i == "nan" else i[1:] print(value) result_list.append(value)
另外补充一点:如果d["Cabin new"]里的"nan"其实是Python的None或者numpy的np.nan,那你原来的判断条件i == "nan"就不生效了,这时候得改成对应的判断方式,比如pd.isna(i)(如果用pandas的话)或者i is None,不过看你原代码的写法,应该是字符串类型的"nan",所以上面的代码应该没问题。
内容的提问来源于stack exchange,提问作者Shubham Mittal
相关产品推荐
相关产品推荐

