python - 以特定方式填充列表

标签 python list populate

我需要用 5 个位置填充一个列表。

new_list =  ___ ___ ___ ___ ___

我收到 2 个列表,我有一个默认值来填充新列表。

现在开始做题:

好的方法是,我从 listA 收到 2 个值,从 listB 收到 2 个值并添加默认值

A1 A2 DEFAULT B1 B2

但是现在,如果 listA 是空的,我需要以另一种方式填充:

DEFAULT B1 B2 B3 B4

如果 listB 为空,则相同。

如果 listA 只有 1 个元素,而 listB 是另一个元素,它应该是:

A1 DEFAULT B1

编辑:listA 和 listB 有更多对象

最佳答案

您可以通过使用 a 和 b 从默认用户开始递归构建列表来解决此问题。

def build_list(listA,listB,default=None):
    if default is None:
        default = [DEFAULT_USER]
    if len(default) == 5 or len(listA) + len(listB) == 0:
        return default
    else:
        default = listA[:1] + default + listB[:1]
        return build_list(listA[1:],listB[1:],default)

这会将 listA 的一个元素添加到开头,将 listB 的一个元素添加到结尾,直到默认长度为 5。如果其中一个列表变为空,它将简单地从该列表中添加任何内容,给出确切的行为你自找的。

它会一直运行,直到所有输入列表的长度为 0 或默认长度为 5。此方法适用于任何长度的列表,包括零,但不会保留列表 A 中元素的顺序。

一些测试示例:

>>> DEFAULT_USER=1000
>>> build_list([1],[2])
[1,1000,2]
>>> build_list([],[1,2,3,4,5,6,7,8,9])
[1000, 1, 2, 3, 4]
>>> build_list([1,2,3,4,5],[6,7,8,9,10])
[2, 1, 1000, 6, 7]
>>> build_list([1,2,3,4,5,6,7,8,9],[])
[4, 3, 2, 1, 1000]

关于python - 以特定方式填充列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38441568/

相关文章:

python - Python 中的 Swatch 互联网时间

python - django模板显示项目值或空字符串

c# - 如何在 C# 中使用 List<string[]>

php - 使用 PHP 和 MYSQL 预先完成 HTML 表单

vb.net - 使用数据集以编程方式在 VB.NET 中加载 datagridview

从接近阈值的 Numpy 数组中删除元素的 Pythonic 方法

python - 扭曲和Web编程该走哪条路?

c# - 从列表中返回元组计数

r - 通过 R 中的矩阵列表进行索引