Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python if语句未返回所需的追加到整个列表_Python_Loops_Csv_If Statement_Conditional Statements - Fatal编程技术网

Python if语句未返回所需的追加到整个列表

Python if语句未返回所需的追加到整个列表,python,loops,csv,if-statement,conditional-statements,Python,Loops,Csv,If Statement,Conditional Statements,我正试图根据应用程序的价格在列表中创建一个新类别。如果价格等于0,则新类别将该应用程序列为“免费”。如果该应用程序等于或大于50,则新类别将该应用程序列为“非常昂贵” 当我运行以下代码时,我的新列表的第一行似乎有一个名为“price label”的所需部分,该部分基本上是列标题。但是,列表的后续行/部分不包含所需的价格类别:“免费”、“负担得起”、“昂贵”等 有人能告诉我为什么我没有看到理想的“免费”、“实惠”、“昂贵”等类别 先谢谢你 opened_file = open('AppleStor

我正试图根据应用程序的价格在列表中创建一个新类别。如果价格等于0,则新类别将该应用程序列为“免费”。如果该应用程序等于或大于50,则新类别将该应用程序列为“非常昂贵”

当我运行以下代码时,我的新列表的第一行似乎有一个名为“price label”的所需部分,该部分基本上是列标题。但是,列表的后续行/部分不包含所需的价格类别:“免费”、“负担得起”、“昂贵”等

有人能告诉我为什么我没有看到理想的“免费”、“实惠”、“昂贵”等类别

先谢谢你

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')
opened\u file=open('AppleStore.csv'))
从csv导入读取器
读取文件=读取器(打开的文件)
应用程序\数据=列表(读取\文件)
对于应用程序中的应用程序_数据[1:]:
价格=浮动(应用[4])
如果价格=0:
append('免费')
elif价格>0且价格<20:
append('价格合理')
如果价格>=20且价格<50:
app.append(‘昂贵’)
elif价格>=50:
append('非常昂贵')
应用程序\数据[0]。追加('价格\标签')

我看不出有什么错误。代码对我来说非常好。
此外,如果您想访问原始应用程序数据列表中的变量,您可以使用枚举

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')
来自csv导入读取器的

以open('data.csv','r')作为f:
读取文件=读取器(f)
应用程序\数据=列表(读取\文件)
对于应用程序中的应用程序_数据[1:]:
价格=浮动(应用[4])
印刷品(价格)
如果价格=0:
append('免费')
elif价格>0且价格<20:
append('价格合理')
如果价格>=20且价格<50:
app.append(‘昂贵’)
elif价格>=50:
append('非常昂贵')
应用程序\数据[0]。追加('价格\标签')
结果是

['a','b','c','d','e','price_label']
['0.158910465'、'0.471050439'、'0.57616592'、'0.73310126'、'22'、'昂贵']
['0.551014295','0.366737111','0.199838786','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.78024135','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','非常昂贵']


不确定您的列表是什么样子,但您在这里的列表将不起作用。例如,迭代变量app是列表apps\u数据的一个元素。您不能附加到它。
假设你的apps_数据看起来像apps_数据-[0,1,2,3,10],那么当你迭代时,app的值将为0,1,2,3,10。Line price=float(应用程序[4])将通过一个错误,因为应用程序是标量。也许您想要的是price=float(apps_data[4]),这将是示例中的值10。您需要初始化一个空列表,然后将其追加。

您的迭代变量
app
与您尝试追加的列表变量相同-初始化列表并选择另一个变量名称。我正在尝试追加价格类别:“免费”、“昂贵”等。。。到原始列表
apps\u data
。但我认为我不能直接附加到
apps\u数据列表中。因此,我使用了迭代变量
app
,来点击原始列表的每一行/app。除了创建一个新的列表之外,没有其他方法可以实现这一点。谢谢,谢谢。我认为我在Jupyter笔记本中错误地分解了代码,而vice只是在一个块中完成了所有工作。