Как преобразовать вывод цикла for в список Python - PullRequest
0 голосов
/ 22 сентября 2018

Я новичок в Python, извините за уровень этого вопроса.

Это мой вывод (цены с сайта).Мне интересно, как конвертировать их в список int с

for price_list_items in price_list:
        for values in price_list_items:
            x= values.rstrip(' zł')
            print(x)

479 000
355 000
269 000
499 000
289 000

Желаемому результату понравится [479 000 355 000, ...].Кроме того, я хочу быть в состоянии выполнить основные с ценностями.Я нашел эту тему Как преобразовать вывод цикла for в список (python) , но это мне не помогло.

Ответы [ 2 ]

0 голосов
/ 22 сентября 2018
lista = []

for price_list_items in price_list:
        for values in price_list_items:
            x= values.rstrip(' zł')
            lsita.append(x)

lista = ['479 000', '350 000']
for idx, item in enumerate(lista):
        item = item.split()
        item = ''.join(item)
        lista[idx] = int(item)

print(lista)

~/python/stack$ python3.7 sum.py [479000, 350000]

Измените свою последнюю строку на append на lista вместо print.Теперь у нас есть lista = ['479 000', ...], но мы хотим, чтобы int s выполнял операции.

Таким образом, мы можем enumerate наши list, оттуда мы можем split() и join() добраться доздесь lista = ['479000', ...] тогда мы можем просто использовать int(item) и поместить их обратно в lista как int s

Для развлечения мы могли бы сделать map и просто перейти от:

lista = ['479 000', '350 000']
lista = list(map(lambda x: int(''.join((x.split()))), lista))
0 голосов
/ 22 сентября 2018

Похоже, что ваша строка должна представлять собой последовательность из 6-значных чисел, но обе отдельные числовые части, из-за отсутствия лучшего термина, разделены пробелами, а сами числа разделены символами новой строки.Следовательно, решение состоит в том, чтобы убрать пробел между числовыми частями, преобразовав результат в целое число, например:

int(part.replace(' ', '')) # Finds all instances of space and replaces them with nothing

Если поместить это в список-представление, мы получим:

numbers = [int(l.replace(' ', '')) for l in str]

ОБНОВЛЕНИЕ

Поскольку вы опубликовали свой код, я могу дать вам лучший ответ.

[ int(v.rstrip(' zł').replace(' ', '')) for price_list_items in price_list for v in price_list_items ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...