首页 > 解决方案 > 在列表中查找数字的第 n 位

问题描述

假设您有一些嵌套列表 [[4,682,31249,81,523],[321741245,7],[349,25,5]] ,其中每个元素可以是任意长度,并且每个数字的长度也可以变化。如何检查每个单独的数字从左边的第一个数字包含什么?以及继续通过数字找到第 2、第 3 等数字。

为简单起见,程序只需要一次返回一个数字,即返回4,再次调用时返回6。

预期输出:

4,6,3,8,5,3,7,3,2,5 
8,1,1,2,2,4,5 
2,2,3,1,9

标签: pythonpython-3.xnested-lists

解决方案


x=[[4,682,31249,81,523],[321741245,7],[349,25,5]]
x=[item for sublist in x for item in sublist]
max_len=len(str(max(x)))
x=[str(y) for y in x]
def digits(x,index):
    digit_list=[]
    for num in x:
        try:
           digit_list.append(num[index])
        except:
           pass
    return digit_list
for index in range(0,max_len):
       print(digits(x,index))

解释:

1.初始化x

2.Flat x 即将嵌套列表转换为列表

3.计算最大数字的长度。您也可以选择“n”。我把它作为最大数字的长度

4.将所有数字转换为字符串

5.定义函数digits()。它根据称为的索引初始化列表并附加单个数字

6.通过循环范围(0,max_len/n),为每个索引调用digits():0-->n

输出


推荐阅读