我需要检查变量是否在列表列表中,如果是,则返回子列表。我试过很多不同的解决办法,但都不管用。。。你知道吗
我的代码:
addressList = [['JohnSmith', 'NR87TYH', 'PE26RE', '1EnglandRoad', '67'],['JaneSmithe', 'UY34DSF', 'SW147EG', '23SouthDrive', '82'], ['JimmyJones', 'PL20DCH', 'NW33EX', '145EastRidings', '54']]
numPlate = "UY34DSF"
for sublist in addressList:
if numPlate in sublist:
print("Ding dong the witch is dead!")
我应该澄清一些事情。“addressList”变量是一个CSV文件,它被剥离成一个列表,并在上面写入时显示出来。你知道吗
这个,或者其他15种不同的方法都没用,但我觉得这是最接近逻辑的。我是不是漏掉了什么明显的东西?你知道吗
谢谢!你知道吗
编辑:好的,谢谢你的回答,它让我仔细检查了我的代码中的所有内容,但它仍然不起作用,所以我复制了它并将整个代码粘贴到下面。你知道吗
“line1”返回文件中所需的值。你知道吗
“reading2”按原样返回列表列表。你知道吗
由此看来,我的原始问题中包含的迭代应该可以很好地工作,但不是吗?有什么想法吗?你知道吗
import csv
fopen = open("StandardUKReg.txt","r")
line1 = fopen.readline()
fopen.close()
with open("OwnerInfoCSV.csv", "r") as inf:
reading2 = list(csv.reader(inf, skipinitialspace=True))
for sublist in reading2:
if line1 in sublist:
print("yay")
print(line1) # This displays "UY34DSF"
print(reading2) # This displays the below list of lists:
[['Name', 'Reg', 'Postcode', 'Address', 'Speed'], ['JohnSmith', 'NR87TYH', 'PE26RE', '1EnglandRoad', '67'], ['JaneSmithe', 'UY34DSF', 'SW147EG', '23SouthDrive', '82'], ['JimmyJones', 'PL20DCH', 'NW33EX', '145EastRidings', '54'], ['VinnyJones', 'TD53BFC', 'NG167YT', '95BirdRoad', '79'], ['ClarkKent', 'FH45NFH', 'SE89YG', '8NorthAvenue', '56']]
当您阅读例如第1行时,它可能有不可见的回车符或可能有空格。例如,打印第1行的长度,或在它之前/之后打印一些内容来检查这一点。当然,这些不可见字符将阻止line1匹配列表中的任何内容。使用strip()进行清理,例如:
这将创建包含该字符串的所有列表的列表。你知道吗
相关问题 更多 >
编程相关推荐