python判断元素是否在列表组中?
列表名都是“list+数字”的格式。
我现在想要判断元素K45是否存在于这100个列表中。
要怎么判断K45是否存在于这100个列表中呢?
总不可能手动给逐个列表添加判断条件吧?
有没有什么简洁的方式解决呢?
list1 = ['A','B1','C','D6','E2','F4']
list2 = ['G','H','K45','J4','K','L7']
list3 = ['M3','N','O5','P','Q43','R']
……
list100= ['S2','W5','R8','T','W','E'] 展开
locals() 函数会以字典类型返回当前位置的全部局部变量。
对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。
def chuli():
list1 = ['A', 'B1', 'C', 'D6', 'E2', 'F4']
list2 = ['G', 'H', 'K45', 'J4', 'K', 'L7']
list3 = ['M3', 'N', 'O5', 'P', 'Q43', 'R']
# 在这里有100个列表
list100 = ['S2', 'W5', 'R8', 'T', 'W', 'E']
# locals() 函数会以字典类型返回当前位置的全部局部变量。
# 对于函数, 方法, lambda 函式, 类, 以及实现了 __call__ 方法的类实例, 它都返回 True。
dc = locals()
for key, val in dc.items():
if 'K45' in val:
print(key)
chuli()
# 模拟环境
list1 = [1,2,3,4]
list2 = ['a','b','c','d']
list3 = ['1','2','3','4']
K45 = 'a'
# 在listx中寻找K45
# 如果list{x}不是list可能会产生错误
k = None
for i in range(1,101):
....k = 'list{}'.format(i)
....if k in locals().keys():
........if K45 in locals()[k]:
............print('K45 in {}'.format(k))
............break
else:
....print('can not find K45...')
大佬牛逼,只是这样只能识别单个元素的,要是多个列表存在多个k45,就行不通了啊
那就修改对K45是否在列表的判断和内部是否break啊,具体的实现总是根据具体的需求而定的,你提出的问题是【要怎么判断K45是否存在于这100个列表中】,这个部题的核心就是,一组列表的变量名有相似,要对它们做同样的处理,又不想重复的编写雷同的代码。解决办法是从用循环从locals()里找出它们,并对它们做同样的处理。至于是寻找一个K45还是检查它们的元素是否连续,或者其它的,那与核心问题没有太大的关系,最内层的if写法不同而已。
locals()可以字典形式返回当前所有变量,你可以去测试下,我现在没时间去测试了
#使用for循环历遍1到100
for i in range(1,100+1):
if "k45"in list i:
print(list_i)
你说得都不清不楚的,要是我会码这个代码,我还用提问?
嗯……哪里不清楚?