如何用循环生成0-6重复100次的列表?求Pandas解决方案
问题分析
你的代码存在几个关键问题:
range(1,7)生成的是1到6的整数,没有包含你需要的0;- while循环的终止条件
x !=10只会让外层循环执行10次,每次添加6个元素,最终仅得到60个元素,和“0到6重复100次”的需求不符; - x在for循环内每次递增1,导致外层循环提前终止,逻辑完全错误。
原生Python解决方案
需求1:0-6的序列整体重复100次(即[0,1,2,3,4,5,6]循环100遍)
最简单的方式用列表乘法实现:
ls = list(range(7)) * 100
也可以用循环实现:
ls = [] # 循环100次,每次添加0-6的完整序列 for _ in range(100): ls.extend(range(7))
需求2:0到6每个数值各自重复100次(即0出现100次、1出现100次……6出现100次)
用列表推导式实现:
ls = [num for num in range(7) for _ in range(100)]
或者用循环实现:
ls = [] for num in range(7): # 每个数值重复添加100次 ls.extend([num] * 100)
Pandas解决方案
需求1:序列整体重复100次
import pandas as pd # 生成重复后的Series series = pd.Series(list(range(7)) * 100) # 或生成DataFrame df = pd.DataFrame({'values': list(range(7)) * 100})
需求2:每个数值重复100次
用repeat方法更简洁:
import pandas as pd # 生成每个数重复100次的Series series = pd.Series(range(7)).repeat(100) # 转为DataFrame df = pd.DataFrame({'values': series})
内容的提问来源于stack exchange,提问作者Alde Joshua Wibowo
相关产品推荐
相关产品推荐

