python - 用户是否有一种简单的方法可以灵活地选择哪些列表/字符串可以组合?
问题描述
我有很多不同类别的列表。我试图找出一种有效的方法让用户提供输入来告诉脚本哪些列表用于操作。
例如,我有 20 个不同的列表,而用户想要使用其中的 3 个来组合到一个临时列表,那么最好的编码方式是什么?
我是 python 的新手,所以我的第一直觉是只使用一百万个 if 语句,但我怀疑这是最有效的做事方式。
预期结果:
list1
list2
list3
list4
list5
用户不知何故说“给我列表 2、4 和 5。
并生成一个用户列表,即List0 = list2 + list4 + list5
解决方案
如果我要将此问题拆分为多个编程任务(分而治之),我会担心用户输入是第一个,列表的串联是第二个。
用户指定列表的最简单方法是使用 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)
推荐阅读
- javascript - 自动化 SAPUI5 应用程序 - 是否可以使用其 API?
- android - '如何使用带有“Content-Type”的 Volley 发送 Post 请求:“application/x-www-form-urlencoded”
- python - 在views.py中处理的字段上的非空约束错误
- android - Exo 播放器有时在 android 中花费太多时间开始播放音频
- php - EverNote API findNotesMetadata 不会返回每个带有过滤器创建时间的笔记
- javascript - pac 文件 SyntaxError: Unexpected number 问题
- vector - 在 Rust 中迭代向量时何时使用引用?
- bash - shell如何删除具有几乎相同名称对的列表模式的第一个文件/文件夹
- google-sheets - 对 Google 表格中特定工作表的特定权限
- javascript - 从前端 Web 服务器调用 API 服务器