Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关联2个列表_Python_List - Fatal编程技术网

Python 关联2个列表

Python 关联2个列表,python,list,Python,List,我正在用一些运行在字符串上的re.findall创建两个列表 jobids = re.findall(r'R=(\d+)', (str(key['Job Dependencies']))) jobdeps = re.findall(r'J=(\d+)', (str(key['Job Dependencies']))) 这两者都创建了一个如下列表: ['14866152', '0', '0', '14866149', '0', '14866156'] ['75205', '52336', '75

我正在用一些运行在字符串上的
re.findall
创建两个列表

jobids = re.findall(r'R=(\d+)', (str(key['Job Dependencies'])))
jobdeps = re.findall(r'J=(\d+)', (str(key['Job Dependencies'])))
这两者都创建了一个如下列表:

['14866152', '0', '0', '14866149', '0', '14866156']
['75205', '52336', '75208', '75207', '75197', '75200']
在上述情况下,列表将始终具有相同数量的元素,即
6

我要做的是扫描第一个列表,如果它是
0
,我希望第二个列表中的数字具有相同的值

我想我需要做一些事情,比如:

for key in jobids:
    if key == '0':
        print jobdeps
但这会返回整个列表,我不想要它。在上面的例子中,我想要3个单独的返回值,分别是
'52336'
'75208'
'75197'
试试这个

for index, key in enumerate(jobids):
    if key == '0':
        print jobdeps[index]
试试这个

for index, key in enumerate(jobids):
    if key == '0':
        print jobdeps[index]

您可以使用列表理解:

>>> [jobdeps[i] for i,j in enumerate(jobids) if j=='0']
['52336', '75208', '75197']

您可以使用列表理解:

>>> [jobdeps[i] for i,j in enumerate(jobids) if j=='0']
['52336', '75208', '75197']
zip()
是你的朋友:

for key, val in zip(jobids, jobdeps):
    if key == '0':
        print val
zip()
是你的朋友:

for key, val in zip(jobids, jobdeps):
    if key == '0':
        print val
您可以使用和:

您可以使用和:


您必须检查与键对应的索引,在您的情况下,您将打印出整个数组

这对你应该有帮助


您必须检查与键对应的索引,在您的情况下,您将打印出整个数组

这对你应该有帮助


“zip”功能在这里很方便

for jobid, jobdep in zip(jobids, jobdeps):
    if jobid == '0':
        print jobdep
您也可以尝试使用enumerate(),例如


“zip”功能在这里很方便

for jobid, jobdep in zip(jobids, jobdeps):
    if jobid == '0':
        print jobdep
您也可以尝试使用enumerate(),例如


我们两个都写了完全相同答案的尴尬时刻xD我们两个都写了完全相同答案的尴尬时刻xD