将列表的元素与子列表的元素进行比较 python
Comparing elements of a list with those of sublists python
我正在尝试编写一个从列表中获取值的函数,然后查看它是否在子列表中的两个值的范围内。希望我的代码能更好地解释它:
list1 = [1, 2, 3, 4, 5]
list2 = [[1, 3], [2, 4]]
answer = []
c = 0
for elem in list1:
if list2[c] <= int(elem) <= list2[c+1]:
answer.append(elem)
sys.stdout.write(str(answer) + ' ')
c += 1
Expected Output:
1 2 3
2 3 4
所以我想做的是看list1中元素的值是否在list2中每个子列表的范围内,当然是将值添加到一个列表中然后打印出来。
我收到错误消息:
Traceback (most recent call last):
File "Task11.py", line 54, in <module>
main()
File "Task11.py", line 51, in main
input_string()
File "Task11.py", line 48, in input_string
list_interval(input_list, query_values)
File "Task11.py", line 16, in list_interval
if int(list2[c]) <= int(elem) <= int(list2[c+1]):
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
我不明白,但我不确定如何按照我提到的方式实际使用子列表。
使用列表推导式在 list2
中指定的范围参数中查找来自 list1
的所有元素:
list1 = [1, 2, 3, 4, 5]
list2 = [[1, 3], [2, 4]]
lst = [[c for c in list1 if c in <b>range(x, y+1)</b>] for x, y in list2]
print(lst)
# [[1, 2, 3], [2, 3, 4]]
range()
有助于创建一个数字范围,从第一个参数开始,不包括最后一个参数。它还采用可选的步骤参数,您可以在其中指定结果输出中相邻数字之间的差异。如果为空表示步长为 1.
我正在尝试编写一个从列表中获取值的函数,然后查看它是否在子列表中的两个值的范围内。希望我的代码能更好地解释它:
list1 = [1, 2, 3, 4, 5]
list2 = [[1, 3], [2, 4]]
answer = []
c = 0
for elem in list1:
if list2[c] <= int(elem) <= list2[c+1]:
answer.append(elem)
sys.stdout.write(str(answer) + ' ')
c += 1
Expected Output:
1 2 3
2 3 4
所以我想做的是看list1中元素的值是否在list2中每个子列表的范围内,当然是将值添加到一个列表中然后打印出来。 我收到错误消息:
Traceback (most recent call last):
File "Task11.py", line 54, in <module>
main()
File "Task11.py", line 51, in main
input_string()
File "Task11.py", line 48, in input_string
list_interval(input_list, query_values)
File "Task11.py", line 16, in list_interval
if int(list2[c]) <= int(elem) <= int(list2[c+1]):
TypeError: int() argument must be a string, a bytes-like object or a number, not 'list'
我不明白,但我不确定如何按照我提到的方式实际使用子列表。
使用列表推导式在 list2
中指定的范围参数中查找来自 list1
的所有元素:
list1 = [1, 2, 3, 4, 5]
list2 = [[1, 3], [2, 4]]
lst = [[c for c in list1 if c in <b>range(x, y+1)</b>] for x, y in list2]
print(lst)
# [[1, 2, 3], [2, 3, 4]]
range()
有助于创建一个数字范围,从第一个参数开始,不包括最后一个参数。它还采用可选的步骤参数,您可以在其中指定结果输出中相邻数字之间的差异。如果为空表示步长为 1.