我有一个由
list(input())
创建的列表,其中包含字母和数字,
喜欢['F', 'G', 'H', '1', '5', 'H']
我事先不知道清单的内容。
如何创建一个新列表来显示适合预定义参数的字符串位置,以便我可以收到类似
number_list = [3, 4]
和 letter_list = [0, 1, 2, 5]
的输出?
我认为我的答案可能涉及索引、
enumerate()
和for
循环,但我不确定如何按照我想要的方式过滤列表内容。
我想要列表中字符串的位置值,这样我就可以使用 min()
和 max()
函数,这样最左边的字母就不会出现在最右边的数字之后。然后防止使用的第一个数字是 0。
您可以使用简单的 for 循环与
isdigit()
:
def _collect(L):
nums, alphas = [], []
for i, val in enumerate(L):
if val.isdigit():
nums.append(i)
else:
alphas.append(i)
return nums, alphas
print(_collect(['F', 'G', 'H', '1', '5', 'H']))
([3, 4], [0, 1, 2, 5])