python - 通过将列表插入列表来扩展列表

标签 python

我想扩展列表

s = 0,1

def hi(x):
    global s
    for i in range(x):
        s = 0,s
    return s

print hi(5)

结果将是“(0, (0, (0, (0, (0, (0, 1))))))”

但我真正想要的是 (0, 0, 0, 0, 0, 0, 1)。 你有什么想法吗?

最佳答案

您可以这样做:s= (0,)+s 创建一个新的元组,并以0开头(而不是嵌套元组)在每次迭代时就像您所做的那样。

但也许最好的方法是使用乘法在前面添加一个零元组(以避免循环):

s = (0,)*x + s

更让我困扰的是需要使用全局。我会将 s 作为参数传递:

def hi(x,s):
    return (0,)*x + s

print(hi(5,(0,1)))

产生以下元组:

(0, 0, 0, 0, 0, 0, 1)

您可能想了解列表元组及其差异:What's the difference between lists and tuples? 。使用列表要容易得多,因为它们提供了可用的就地操作(它们不能用作字典键或存储在集合中)

关于python - 通过将列表插入列表来扩展列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46023493/

相关文章:

python - POX in mininet : What does event. parsed in pox?什么是 parse.next?

python - 在圆 OpenCV 内绘制文本

python - 由于 EnvironmentError : Could not find a suitable TLS CA certificate bundle, 路径无效,无法安装包

python - 将 MySQL 转换为 Flask-SQLAlchemy

python - 有效地计算非零值的运行

python - 由于Linux文件中可能出现AttributeError,Linux Mint中的特定菜单项无法正常工作

python - 使用 scipy 和 numpy 中的函数计算 z-score

python - 将字符串解析为过滤 Pandas 数据框的条件

python - C++ 线程错误中的嵌入式 Python

python - 如何将多列附加到前 3 列并使用 pandas 重复索引值?