我需要检查变量是否在列表中,并且是否返回子列表。我已经尝试了一些不同的解决方案,但他们没有工作...如何检查字符串是否在列表列表中,并返回子列表(如果是)?
我的代码:
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']]
您的代码适用于我 - 它打印叮当消息。好的,你改变了这个问题,没有时间去碰到一个移动的目标。 – barny
工作正常,它打印消息。我也打印了子列表,它工作正常。 – Himanshu
有趣!我看了一下,我可以看到“numPlate”变量正在文本前面以小写“t”被读取?我会谷歌,看看有什么。 – MildCorma