python - 将列表整理成嵌套列表

标签 python

我正在尝试弄清楚如何将列表中的元素附加到我将它们放入嵌套列表的模式中。

例如:

members = [1, 2, 3, 4, 5, 6, 7, 8, 9]
no_of_teams = int(input('no. of teams? '))
teams = [ [ ] for _ in range(no_of_teams)]

这样我的输出最终会像这样:

没有团队? 2

teams = [ [1, 3, 5, 7, 9], [2, 4, 6, 8]]

如果用户输入 3 那么它将看起来像这样:

teams = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]

对于 7,它看起来像

teams = [ [1, 8], [2, 9], [3], [4], [5], [6], [7] ]

最佳答案

一个好方法是使用切片:

number = int(input(...))
members = list(range(1, 10))
chunks = len(members) // number
teams = [members[i*chunks:i*chunks+number]
         for i in range(number)]

您也可以改用步长:

teams = [members[i::number]
         for i in range(number)]

这将产生您想要的输出:

  • 在每次迭代中,我们从列表中的下一项开始切片
  • 切片上升 n

因此,如果 n 为 3,则第一次迭代将给出包含索引 0、3、6、9 的切片......因为步长为 3 第二次迭代给出索引 1、4、7 ... 第三次迭代给出索引 2、5、8 ... 迭代在第 3 次停止,因为 n 也规定了这一点。

关于python - 将列表整理成嵌套列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53308911/

相关文章:

python - Scikit Scaler 和 Inversion 不会产生相同的数字?

python - 如何修复 "Cant Update profile in Django"

python - 如何在Python中实现线程运行两个bash shell命令?

python - MySQL-Python 代码无法正常工作,每次我尝试修复时都会生成各种错误

python - 如何舍入 sympy 中的矩阵元素?

python - 逐行读取文件,并获取以某个单词开头的行?

python - 将所有数值替换为 NaN Pandas

python - 这种链式比较真的可以像 PyCharm 声称的那样简化吗?

python - 线程应用程序的信号量同步失败,Python

python - 根据条件在 Pandas Dataframe 中插入行