Печатать только число на массиве данных Python3 - PullRequest
0 голосов
/ 11 октября 2019

У меня есть случайный список данных, подобный этому

tables =
['No', 'Name', 'Job']
['1', 'A', 'A']
['', '', '']
['2', 'B', 'B']
['3', 'C', 'C']

как отобразить только строки списка с номерами

['1', 'A', 'A']
['2', 'B', 'B']
['3', 'C', 'C']

Я уже пробовал int isinstance, но, как вы можете видетьвсе данные являются строкой

Ответы [ 2 ]

3 голосов
/ 11 октября 2019

Используйте str.isnumeric(), чтобы проверить, является ли строка числовой.

tables = [
    ['No', 'Name', 'Job'],
    ['1', 'A', 'A'],
    ['', '', ''],
    ['2', 'B', 'B'],
    ['3', 'C', 'C']
]
number_table = filter(lambda row: any(x.isnumeric() for x in row), tables)
2 голосов
/ 11 октября 2019

Вы можете использовать str.isdigit в понимании списка:

[table for table in tables if any(x.isdigit() for x in table)]

Пример :

tables = [['No', 'Name', 'Job'],
          ['1', 'A', 'A'],
          ['', '', ''],
          ['2', 'B', 'B'],
          ['3', 'C', 'C']]

contains_numbers = [table for table in tables if any(x.isdigit() for x in table)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...