好的,我有一个布局如下的列表:
['12345 3 G482艾玛沃特森,
'12346 1 G485 Colean Green']
等
现在,这两个信息中的"3“和"1”都是年。
艾玛·沃特森=第三年,柯利安·格林=第一年。
现在,我想有一个功能,被用户将在一个范围内的年份,它应该打印出的信息,与一年。例如。如果用户输入年份3-1,输出将显示。
['12345 3 G482艾玛沃特森,
'12346 1 G485 Colean Green']
但是,如果使用情况类似于4-5,就不会有out。
我尝试过这样的方法:(从.txt文件中获取信息)。
f = open(info)
lines = f.readlines()
ranges = [x for x in lines if list(range(1,3) in x.split()[1])]
print(ranges)但是,我得到了错误:'in‘要求字符串作为左操作数,而不是范围。
有人能把我引向正确的方向吗?
发布于 2014-12-08 19:04:57
ranges = [x for x in lines if list(range(1,3) in x.split()[1])]range(1,3) in x.split()[1]没有真正的意义,因为您实际上是在询问[1,2]值是否在字符串中。列表不存在于字符串中,因此会引发错误。
尝试使用any测试范围内的数字是否在字符串中。
ranges = [x for x in lines if any(str(num) == x.split()[1] for num in range(1,3))]https://stackoverflow.com/questions/27364404
复制相似问题