Как удалить строку из списка Python - PullRequest
0 голосов
/ 26 февраля 2019

Можно ли удалить строку и просто получить список

data = [
"50,bird,corn,105.4,"
"75,cat,meat,10.3,"
"100,dog,eggs,1000.5,"
]

хотел бы, чтобы это выглядело так

data = [
50,'bird','corn',105.4,
75,'cat','meat',10.3,
100,'dog','eggs',1000.5,
]

Ответы [ 4 ]

0 голосов
/ 26 февраля 2019

Поскольку каждая строка в списке имеет запятую, вы можете просто собрать ее обратно в одну строку и снова разделить на запятые.Чтобы получить фактические числовые элементы в результирующем списке, вы можете сделать это:

import re
data = [
    "50,bird,corn,105.4,"
    "75,cat,meat,10.3,"
    "100,dog,eggs,1000.5,"
]
numeric = re.compile("-?\d+[\.]\d*$")
data = [ eval(s) if numeric.match(s) else s for s in "".join(data).split(",")][:-1]

data # [50, 'bird', 'corn', 105.4, 75, 'cat', 'meat', 10.3, 100, 'dog', 'eggs', 1000.5]
0 голосов
/ 26 февраля 2019
new_data = []
for i in data:
    new_data.extend(i.split(','))
new_data

Обратите внимание, что могут быть проблемы (например, у вас есть последняя запятая, после которой ничего не стоит, поэтому она генерирует строку '' как последний элемент в новом массиве).

Если вы хотите специально преобразовать числа в целые числа и числа с плавающей запятой, возможно, есть более элегантный способ, но он будет работать (он также удаляет пустые ячейки, если у вас есть лишние запятые):

new_data = []
for i in data:
    strings = i.split(',')
    for s in strings:
        if (len(s)>0):
            try:
                num = int(s)
            except ValueError:
                try:
                    num = float(s)
                except ValueError:
                    num = s
            new_data.append(num)
new_data
0 голосов
/ 26 февраля 2019

разделить каждую строку (это даст вам массив сегментов между "," в каждой строке):

str.split(",")

и сложить массивы вместе

0 голосов
/ 26 февраля 2019
out = []
for x in data:
  for e in x.split(","):
    out.append(e)

Что это делает?Он разбивает каждый элемент (x) на data на запятой, выбирает каждый из этих отдельных токенов (e) и помещает их в переменную (out.append).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...