首页 > 解决方案 > 用户是否有一种简单的方法可以灵活地选择哪些列表/字符串可以组合?

问题描述

我有很多不同类别的列表。我试图找出一种有效的方法让用户提供输入来告诉脚本哪些列表用于操作。

例如,我有 20 个不同的列表,而用户想要使用其中的 3 个来组合到一个临时列表,那么最好的编码方式是什么?

我是 python 的新手,所以我的第一直觉是只使用一百万个 if 语句,但我怀疑这是最有效的做事方式。

预期结果:

list1
list2
list3
list4
list5

用户不知何故说“给我列表 2、4 和 5。

并生成一个用户列表,即List0 = list2 + list4 + list5

标签: pythonlistinputchoice

解决方案


如果我要将此问题拆分为多个编程任务(分而治之),我会担心用户输入是第一个,列表的串联是第二个。

用户指定列表的最简单方法是使用 input() 方法。下面的一个例子:

user_input = input("Please enter the list indexes")
list_indexes = user_input.split(',')

在上面的一些用户输入示例中使用此代码,可以在下面找到结果:

用户输入:'1, 4, 5'

list_indexes = ['1', '4', '5']

现在我们已经处理了用户输入,我们可以使用它来连接列表。

我们需要能够使用相同的引用访问每个类别(如果您想知道原因,请告诉我,我会解释)。这样做的一种方法是将所有类别列表放入一个名为“类别”的更大列表中

categories = [list1, list2, list3,...,list(n)]

然后我们可以遍历类别并提取我们需要的数据。

concatenated_list = []
for index, category in enumerate(categories):
    if (index in (int(i) for i in list_indexes):
        concatenated_list.extend(category)

推荐阅读