如何在可识别为数字的列表中创建变量?

时间:2015-11-14 07:21:33

标签: python list

这是我的代码:

list1 =  "SP   " , "Total Sales   " , "Total Commission"
print("  ".join(list1))
listA = ["103  " , "500"]
listB = "104  " , "25000"
listC = "201  " , "51000"
listD = "319  " , "100000"
listE = "367  " , "12599"
listF = "388  " , "12600"
listG = "435  " , "292000"
print("  ".join(listA))
print("  ".join(listB))
print("  ".join(listC))
print("  ".join(listD))
print("  ".join(listE))
print("  ".join(listF))
print("  ".join(listG))
if  0 < (listA[1]) < 50999:
    print ("yes")

我收到此错误:TypeError: unorderable types: int() < str()

我需要检查(listA[1])中的号码,看看它是否大于0且小于50999,我无法弄清楚如何使其发挥作用。

3 个答案:

答案 0 :(得分:4)

如果你有

listA = ["103  " , "500"]

您只需使用list comprehension将其更改为整数列表:

listA = [int(item) for item in listA]

然后可以与其他整数进行比较。

但是,您不应该使用七个(或更多)单独的列表。最好做点什么:

lists = [["103  " , "500"],
         ["104  " , "25000"],
         ["201  " , "51000"],
         ["319  " , "100000"],
         ["367  " , "12599"],
         ["388  " , "12600"],
         ["435  " , "292000"],
        ]

然后以lists[0]而不是listAlists[1]代替listB等访问子列表。

答案 1 :(得分:1)

您正在比较字符串和整数。

您应该执行类似

的操作
if  0 < int(listA[1]) < 50999:
    print("yes")

答案 2 :(得分:1)

尝试将其传递给int()。这会将字符串转换为int。

0 < int(listA[1]) < 50999: