python – 查找多个列表中是否存在值
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 查找多个列表中是否存在值,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2154字,纯文字阅读大概需要4分钟。
内容图文
![python – 查找多个列表中是否存在值](/upload/InfoBanner/zyjiaocheng/763/cdc5c328776644f7a68280e60e419f5a.jpg)
我有4个列表,列表中的每个元素在4个列表中都是唯一的.如何查找其中一个列表中是否存在该值并返回它所在的列表?
示例列表:
value = 'a'
a = ['a','b','c']
b = ['d','e','f']
d = ['g','h','i']
c = ['j','k','l']
我的预期输出是找到值的列表的名称:
对于上面的示例,我的预期输出将是:
一个
解决方法:
鉴于您更新的问题,我们假设a,b,c,d变量在全局范围内
value = 'a'
a = ['a','b','c']
b = ['d','e','f']
d = ['g','h','i']
c = ['j','k','l']
w = next(n for n,v in filter(lambda t: isinstance(t[1],list), globals().items()) if value in v)
print(w)
产生
a
即包含值的全局命名空间中第一个列表的名称
如果变量在本地范围内,例如在函数中,您可以使用locals()代替
def f():
a = ['a','b','c']
b = ['d','e','f']
d = ['g','h','i']
c = ['j','k','l']
w = next(n for n,v in filter(lambda t: isinstance(t[1],list), locals().items()) if value in v)
print(w)
f()
产生
a
注意:您可能希望采用命名约定来定位特定的变量组,例如targ_作为前缀
targ_a = ['a','b','c']
targ_b = ['d','e','f']
targ_d = ['g','h','i']
targ_c = ['j','k','l']
w = next(n for n,v in filter(lambda t: isinstance(t[1],list) and t[0].startswith('targ_'), globals().items()) if value in v)
print(w)
产生
targ_a
为了更详细地解释一下,让我们看一下globals()调用返回的内容.例如使用python shell
Python 3.4.3 (default, Oct 14 2015, 20:28:29)
[GCC 4.8.4] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> value = 'a'
>>> targ_a = ['a','b','c']
>>> targ_b = ['d','e','f']
>>> targ_d = ['g','h','i']
>>> targ_c = ['j','k','l']
>>> globals()
{'targ_d': ['g', 'h', 'i'], 'targ_c': ['j', 'k', 'l'],
'__builtins__': <module 'builtins' (built-in)>,
'__doc__': None, '__package__': None,
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'targ_a': ['a', 'b', 'c'], '__name__': '__main__',
'targ_b': ['d', 'e', 'f'], '__spec__': None, 'value': 'a'}
如你所见,globals()返回一个字典.其键是全局命名空间中定义的变量的名称.它的值是每个这样的变量所持有的值.
因此
>>> next(n for n,v in filter(lambda t: isinstance(t[1],list) and t[0].startswith('targ_'), globals().items()) if value in v)
'targ_a'
在表达式生成的生成器上迭代一次,这将在全局名称空间中生成每个名称,该名称对应于名称以targ_开头且包含等于value的元素的列表.它通过迭代调用globals返回的字典来实现
内容总结
以上是互联网集市为您收集整理的python – 查找多个列表中是否存在值全部内容,希望文章能够帮你解决python – 查找多个列表中是否存在值所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。