为何Polars列列表经列表推导重复后长度仍为103?
问题解答:Polars列列表推导后长度不变的原因
你写的列表推导式[[k]*6 for k in lpd.columns]逻辑是遍历原lpd.columns的每一个元素k,把k重复6次组成一个子列表,再把这些子列表依次放进外层列表。
原lpd.columns本身有103个元素,推导式只是把每个元素从单个字符串(列名)替换成了包含6个相同字符串的子列表,外层列表的元素数量和原列表完全一致,所以len(multi_cols)自然还是103。
举个简化的例子:
假设lpd.columns = ["col1", "col2"],执行推导式后得到的是[["col1","col1","col1","col1","col1","col1"], ["col2","col2","col2","col2","col2","col2"]],外层列表长度是2,和原columns长度一样,而不是2*6=12。
如果你的目标是得到一个把所有列名重复6次的扁平列表,应该改成这样:
multi_cols = [k for k in lpd.columns for _ in range(6)]
这样得到的列表长度就是103*6=618。
内容的提问来源于stack exchange,提问作者plotmaster473
相关产品推荐
相关产品推荐

