【发布时间】:2020-05-07 02:54:44
【问题描述】:
案例如下:我创建了一个代码,该代码基于某些标准,为我提供了每个屏幕的打印列表。
data = [[ 17, 0, 0, 0, 2.5, 'A+', 450],
[ 18, 5, 0, 5, 2.5, 'A+', 450],
[ 19, 9, 0, 9, 2.5, 'A+', 450],
[ 20, 0, 2.5, 0, 5, 'A+', 450],
[ 21, 5, 2.5, 5, 5, 'A+', 450],
[ 22, 0, 2.5, 5, 2.5, 'B-', 400],
[ 23, 5, 2.5, 9, 2.5, 'B-', 400],
[ 24, 0, 5, 5, 5, 'B-', 400]]
pairs = []
for i in range(len(data)):
for j in range(len(data)):
if data[i][3] == data[j][1] and data[i][4] == data[j][2]:
pairs.append([data[i][0], data[j][0]])
# if data[i][5] == 'B-' and data[i][5] == data[i+1][5]:
# pairs.append([data[i][0], data[j][0]])
print(pairs)
但现在我想删除 - 在这种情况下 - 包含对 [22, 23] 的列表,因为它满足 2 个条件:
- 首先是2个连续的数字。
- 第二个是两者都是'B-'类型(data [i] [5] = 'B-')
我只想剔除那些同时满足这两个条件的,列表是这样的(为了说明目的):
[[17, 20], [17, 22], [18, 21], [18, 23], [20, 24], [22, 21]]
我尝试使用另一个条件创建,其中包含了提到的点,但我有索引错误,我认为有一些方法可以纠正这个问题,非常感谢你的帮助。问候。
【问题讨论】:
-
您必须提供有关您的条件的更多详细信息。两个连续的数字是什么意思?您是只寻找 B- 还是要检查所有内容?
-
你的第一栏总是在增加吗?
-
是的,@iamvegan。
标签: python python-3.x list for-loop