将字符串与整数进行比较

Rav*_*lil 4 python list python-2.7

我只是学习如何使用python和列表.我有一个如下所示的样本列表.

list = [['Ferrari','200,000','10,000km'],['Porsche','230,000','10,000km'],['Ferrari','150,000','10,000km'],['Ferrari','200,000','10,000km'],['Porsche','230,000','10,000km'],['Porsche','200,210','10,000km'],['Ferrari','110,000','10,000km'],['Porsche','400,000','10,000km'],
Run Code Online (Sandbox Code Playgroud)

我正在尝试运行一个循环,检查每个嵌套列表中的第二个元素是否大于350,000,然后打印汽车,价格和里程(如果是).

我已经使用了不同的for循环,其中包含一个if语句,但无法弄明白.

Bha*_*Rao 6

首先不要将变量命名list为阴影内置函数.

这是解决问题的一种非常简单的方法

>>> l = [['Ferrari','200,000','10,000km'],['Porsche','230,000','10,000km'],['Ferrari','150,000','10,000km'],['Ferrari','200,000','10,000km'],['Porsche','230,000','10,000km'],['Porsche','200,210','10,000km'],['Ferrari','110,000','10,000km'],['Porsche','400,000','10,000km']]
>>> for i in l:
...     if (int(i[1].replace(',','')) > 350000):      # Remove all the , in your string and type cast it to an integer
...          print i
... 
['Porsche', '400,000', '10,000km']
Run Code Online (Sandbox Code Playgroud)

您可以在列表理解中执行此操作,因为[i for i in l if int(i[1].replace(',','')) > 350000 ]它可以在一行中为您完成所有操作