调用函数时能否在一个参数中访问同函数的另一个参数值?
函数参数中能否直接访问同函数的其他参数值?
这种写法不可行。
原因很简单:Python在调用函数时,所有参数的表达式都是在函数执行前就计算完成的。也就是说,你写在index参数里的代码,会先于pd.Series函数的调用执行,这时候data参数的值还没传递给函数,自然没法直接引用它。
给你几个可行的替代方案:
- 方案一:提前把数据存为变量(就是你最开始的写法,清晰直观)
import pandas as pd data = [40, 70, 90] series = pd.Series(data=data, name='marks', index=range(len(data)))
(这里可以简化range(0, len(data))为range(len(data)),默认就是从0开始)
- 方案二:利用pandas的默认索引
其实如果你不指定index参数,pd.Series会自动生成从0开始的整数索引,和你手动生成的效果完全一致,这是最省事的写法:
import pandas as pd series = pd.Series(data=[40, 70, 90], name='marks')
- 方案三:用海象运算符简化(Python 3.8及以上版本支持)
如果不想单独写一行变量定义,可以用海象运算符在参数表达式里临时赋值:
import pandas as pd series = pd.Series(data=(d := [40, 70, 90]), name='marks', index=range(len(d)))
内容的提问来源于stack exchange,提问作者pragmatic learner
相关产品推荐
相关产品推荐

