Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.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

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迭代元组中的两个列表,并比较两个列表之间的整数_Python_List_Zip_Compare_Tuples - Fatal编程技术网

python迭代元组中的两个列表,并比较两个列表之间的整数

python迭代元组中的两个列表,并比较两个列表之间的整数,python,list,zip,compare,tuples,Python,List,Zip,Compare,Tuples,我这里有一个特定的数字 x = 6 这里有两个列表 list1 = [1, 5, 10] list2 = [3, 7, 20] 我想找到特定数字6的位置,它分别位于列表1和列表2中的5和7之间 Like 6位于列表1和列表2的“第一个索引”之间(基于0), 这意味着两个列表必须迭代并比较数字 for a,b in zip(list1,list2): if a <= x <=b: 而x属于元组的第一个索引[(0)、(1)、(2)] 如何获取此信息?使用next和enum

我这里有一个特定的数字

x = 6
这里有两个列表

list1 = [1, 5, 10]
list2 = [3, 7, 20]
我想找到特定数字6的位置,它分别位于列表1和列表2中的5和7之间

Like 6位于列表1和列表2的“第一个索引”之间(基于0), 这意味着两个列表必须迭代并比较数字

for a,b in zip(list1,list2): 
    if a <= x <=b:
x
属于元组的第一个索引[(0)、(1)、(2)]


如何获取此信息?

使用
next
enumerate

>>> x = 6
>>> next((i for i, (a, b) in enumerate(zip(list1, list2)) if a<=x<=b), None)
1

@Karyo
i
用于存储从
enumerate
返回的索引:
i,(a,b)=(0,(1,3))
,这样的赋值被调用。是否有方法向后枚举元组?像[(2,(1,3)),(1,(5,7)),(0,(10,20))]@Karyo您可以使用:
zip(xrange(len(list1)-1,-1,-1),zip(list1,list2))
Shell返回NameError:name'xrange'未定义。我使用的是3.3.2版本,范围也不起作用。TypeError:unorderable types:int()@Karyo
next
没有错,你把括号放错了地方:
next((i代表i,(a,b)在zip(范围(len(list1)-1,-1,-1),zip(list1,list2))如果a
>>> x = 6
>>> next((i for i, (a, b) in enumerate(zip(list1, list2)) if a<=x<=b), None)
1
>>> list(enumerate(zip(list1, list2)))
[(0, (1, 3)), (1, (5, 7)), (2, (10, 20))]