если заявление не возвращает желаемого добавить в общий список - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь создать новую категорию в моем списке, основываясь на цене приложения. Если цена равна 0, то в новой категории приложение будет указано как «бесплатное». Если приложение равно или больше 50, то в новой категории приложение будет перечислено как «очень дорогое».

Когда я запускаю следующий код, в моем новом списке появляется требуемый раздел с названием «цена». label 'для первой строки, которая по существу будет заголовком столбца. Однако последующие строки / части списка не содержат желаемых ценовых категорий: «бесплатно», «доступно», «дорого» и т. Д. c ...

Может кто-нибудь сказать, почему я не вижу нужных категорий «бесплатно», «доступно», «дорого» и т. д. c ...

Заранее благодарю.

opened_file = open('AppleStore.csv')
from csv import reader
read_file = reader(opened_file)
apps_data = list(read_file)

for app in apps_data[1:]:
    price = float(app[4])
    if price == 0:
        app.append('free')
    elif price > 0 and price < 20:
        app.append('affordable')
    elif price >= 20 and price < 50: 
        app.append('expensive')
    elif price >= 50: 
        app.append('very expensive')

apps_data[0].append('price_label')

Ответы [ 2 ]

1 голос
/ 15 апреля 2020

Я не вижу, в чем ошибка. Код прекрасно работает для меня.
Также, если вы хотите получить доступ к переменным в исходном списке apps_data , вы можете использовать перечисление

for x,app in enumerate(apps_data[1:]):

У меня есть прикрепил вывод ниже

from csv import reader

with open('data.csv','r') as f:
    read_file = reader(f)
    apps_data = list(read_file)

for app in apps_data[1:]:
    price = float(app[4])
    print(price)
    if price == 0:
        app.append('free')
    elif price > 0 and price < 20:
        app.append('affordable')
    elif price >= 20 and price < 50: 
        app.append('expensive')
    elif price >= 50: 
        app.append('very expensive')

apps_data[0].append('price_label')

И вывод был

['a', 'b', 'c', 'd', 'e', ​​' price_label ']
[' 0.158910465 ',' 0.471050439 ',' 0.57616592 ',' 0.73310126 ',' 22 ',' дорогой ']
[' 0.551014295 ',' 0.366737111 ',' 0.199838786 ',' 0.58817097 ',' 0.58817097 ' , '54', 'очень дорого']
['0.466420839', '0.691756584', '0.282783984', '0.585577806', '96', 'очень дорого']
['0.17755358', '0.836570041' , '0.950988799', '0.08555555', '77', 'очень дорого']
['0.511195256', '0.02926122', '0.250221844', '0.811879858', '96', 'очень дорого']
['0.905874282', '0.377772593', '0.461482911', '0.161167257', '80', 'очень дорого']
['0.20806536', '0.983685005', '0.024045729', '0.36432202', '45', 'дорогой']
['0,980234589', '0,417512776', '0,291544555', '0,65904768', '5' , 'доступный']
['0.352375065', '0.978612252', '0.1695656', '0.033074721', '54', 'очень дорогой']
['0.128592107', '0.199429582', '0.431974287', '0.600086682', '94', 'очень дорого']
['0.156103725', '0.060598535', '0.259385323', '0.372274231', '60', 'очень дорого']
['0.97831926', «0,322897216», «0,665576639», «0,616234227», «49», «дорогой»]
[«0,59680653», «0,062487993», «0,03078493», «0,467880813», «21», «дорогой»]
['0.10911428', '0.79362376', '0.417777681', '0.658541168', '85', 'очень дорого'] *
['0.234281085', '0.768671392', '0.455784293', '0.780224135', '73' , 'очень дорого']
['0.329952824', '0.333698305', '0.737541893', '0.537251952', '85', 'очень дорого']
['0.471958364', '0.722226788', '0.629428645' , '0.304862801', '8', 'доступный']
['0.454529755', '0.124055118', '0.838332848', '0.569409642', '28', 'дорогой']
['0.957025298', ' 0,222965542 ',' 0,831737726 ',' 0,075038234 ',' 91 ',' очень дорого ']

0 голосов
/ 15 апреля 2020

не уверен, как выглядит ваш список, но то, что у вас есть, не сработает. Для одного итеративная переменная app является элементом вашего списка apps_data. Вы не можете добавить к нему. Допустим, ваши apps_data выглядят как apps_data- [0,1,2,3,10], поэтому приложение будет принимать значение 0,1,2,3,10 во время итерации. Строка price = float (app [4]) будет через ошибку, так как приложение является скаляром. Возможно, вы хотели, чтобы цена = float (apps_data [4]) была бы значением 10 в примере. Вам нужно будет инициализировать пустой список, а затем добавить его.

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