昨天工作,突然发现之前好好的list,在赋值给新变量后居然类型变了,一个好好的list几分钟不见妥妥的叛变了,变成了tuple,由此,一场闹剧开始上演…
前情回要:
话说有一个类对象内有一方法如下:
def call_frequency(self, data):
...
return list
返回的是一个list,内部是一个个dict,结构如下:
[{xx:xxx,xx:xxx},{xx:xxx,},{x:xxx},...]
闹剧上演:
ok,开始今天任务,开始在另一方法中调用赋值:
data_list = self.call_frequency(data)
结果print data_list,返回值如下:
([{xx:xxx,xx:xxx},{xx:xxx,},{x:xxx},...],)
what a fxxk,瞬间,凌乱了,还以为发现新天地了,啊!原来,list赋值后会变成tuple,加个马甲,以前怎么没发现呢…
还自以为是的在调用data_list时,如下:
call_tel_list = [v.get("call_tel","") for v in data_list[0]]
惊天逆转
晚上,回家,比较得意,欸,又学到一招,不错哟,积蓄,努力。
8小时后,天亮了:
data_list = self.call_frequency(data),
咦,这里怎么有个逗号?
瞬间,懵逼…
四下瞅瞅,
然后,按下←,整个世界清静了,再悄悄把昨天的杰作恢复本来面目,
嗯,今天,天气真好。
真的!
完
作者:Chihwei_hsu
来源:http://chihweihsu.com
Github:https://github.com/HsuChihwei

本文记录了一次因疏忽导致的编程错误经历,作者在使用Python过程中,原本的list在赋值时意外变成了tuple,经过一番排查才发现原来是多余的逗号造成的误会。
&spm=1001.2101.3001.5002&articleId=81406771&d=1&t=3&u=ae017db0213345f4868fc0c574189ce1)
586

被折叠的 条评论
为什么被折叠?



