Нахождение n-го числа git числа в списке - PullRequest
0 голосов
/ 27 мая 2020

Допустим, у вас есть вложенный список [[4,682,31249,81,523],[321741245,7],[349,25,5]], где каждый элемент может иметь любую длину, и длина каждого числа также может варьироваться. Как можно проверить каждое отдельное число на предмет того, что содержится в первом di git слева? Помимо продолжения поиска по номеру, чтобы найти 2-й, 3-й и т. Д. c di git.

Для простоты программе просто нужно возвращать по одному di git за раз, т.е. , затем 6. при повторном вызове.

Ожидаемый результат:

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

Ответы [ 2 ]

1 голос
/ 27 мая 2020
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.define function digits (). Он инициализирует список и добавляет отдельные цифры в соответствии с индексом, называемым

6. С помощью цикла по диапазону (0, max_len / n) вызовите digits () для каждого индекса: 0 -> n

output

0 голосов
/ 27 мая 2020

Предполагая, что вы используете python, сделайте это как:

nestedArr = [[4,682,31249,81,523],[321741245,7],[349,25,5]]

for arr in nestedArr:
    firstNums = [str(x)[0] for x in arr]
    print(", ".join(firstNums))
...