python - 过滤元组内的元组
问题描述
我正在尝试过滤大量看起来像这样的元组:
tuple = ([], [('print', -108.0), ('denim', -144.0), ('floral', -158.0), ('summer', -172.0), ('chiffon', -217.0), ('crochet', -272.0), ('cotton', -275.0), ('graphic', -279.0), ('pattern', -281.0), ('sheer', -294.0)])
我想要做的是创建一些代码行,我可以用来对 Python 说我想检索一个列表,其中只包含数字高于 -200 的字符串,在这种情况下,我想获得:
list = ["print", "denim", "floral", "summer"]
新零件:
现在感谢@Andrej Kesely,我找到了解决这个问题的方法,但是如果我想做同样的事情,但使用一个像这样的元组列表:
predictions = [([],
[('print', -72.0),
('summer', -141.0),
('chiffon', -157.0),
('floral', -266.0),
('graphic', -279.0),
('cotton', -279.0),
('denim', -282.0),
('cute', -321.0),
('striped', -331.0),
('pattern', -337.0)]),
([],
[('chiffon', -89.0),
('summer', -214.0),
('pleated', -250.0),
('sheer', -280.0),
('woven', -286.0),
('crochet', -293.0),
('solid', -295.0),
('cotton', -300.0),
('mesh', -316.0),
('party', -332.0)]),
([],
[('crochet', -188.0),
('chiffon', -204.0),
('summer', -209.0),
('floral', -209.0),
('pattern', -214.0),
('print', -233.0),
('cotton', -252.0),
('sheer', -282.0),
('elegant', -294.0),
('striped', -300.0)]),
(['striped'],
[('striped', 73.0),
('summer', -216.0),
('cotton', -252.0),
('chiffon', -287.0),
('denim', -299.0),
('print', -336.0),
('cute', -357.0),
('linen', -365.0),
('sheer', -372.0),
('chic', -385.0)]),
([],
[('summer', -146.0),
('crochet', -227.0),
('party', -233.0),
('cute', -251.0),
('mesh', -281.0),
('chiffon', -289.0),
('solid', -294.0),
('cotton', -301.0),
('floral', -322.0),
('beach', -323.0)]),
([],
[('cotton', -168.0),
('summer', -197.0),
('print', -211.0),
('striped', -227.0),
('graphic', -248.0),
('denim', -260.0),
('pattern', -302.0),
('floral', -336.0),
('solid', -341.0),
('cute', -341.0)]),
([],
[('print', -165.0),
('denim', -216.0),
('cotton', -260.0),
('striped', -262.0),
('graphic', -301.0),
('leather', -327.0),
('mesh', -339.0),
('stretch', -341.0),
('pattern', -346.0),
('summer', -347.0)]),
([],
[('crochet', -124.0),
('chiffon', -165.0),
('floral', -169.0),
('summer', -170.0),
('sheer', -227.0),
('party', -245.0),
('cute', -260.0),
('mesh', -286.0),
('elegant', -302.0),
('print', -308.0)])]
如何创建一个列表列表,其中包含每个元组的列表,其中仅显示数字大于 -200 的字符串?问题来自图像识别模型的输出,我尝试以这种方式将@Andrej Kesely 的代码嵌入到模型输出的 for 循环中:
predictions=[]
for x in df_images["Media"]:
p= predict(x, labels, model)
prediction = [i for lst in p for i, v in lst if v > -200]
predictions.append(prediction)
但它给了我这个错误:“解包的值太多(预期为 2)”
解决方案
您可以使用列表理解:
tpl = (
[],
[
("print", -108.0),
("denim", -144.0),
("floral", -158.0),
("summer", -172.0),
("chiffon", -217.0),
("crochet", -272.0),
("cotton", -275.0),
("graphic", -279.0),
("pattern", -281.0),
("sheer", -294.0),
],
)
out = [i for lst in tpl for i, v in lst if v > -200]
print(out)
印刷:
['print', 'denim', 'floral', 'summer']
编辑:使用predictions
问题中的新列表:
out = [[i for i, v in lst if v > -200] for _, lst in predictions]
print(out)
印刷:
[['print', 'summer', 'chiffon'], ['chiffon'], ['crochet'], ['striped'], ['summer'], ['cotton', 'summer'], ['print'], ['crochet', 'chiffon', 'floral', 'summer']]
推荐阅读
- java - 无法使用 java swing 从类路径渲染图像?
- android - android撰写文本字段如何在触摸外部时关闭键盘
- c - 如何更新现有应用的 Lua 库?
- node.js - 有没有办法将音频和视频流合并到一个文件中并将其通过管道传输到 res
- r - 获取R中每对直接连接节点之间的相互连接节点列表
- java - snakeyaml 如何将对象列表写回 yaml 文件,而不以“!!”开头的行
- openapi - 某些查询参数的 OpenAPI 安全范围
- python - 为什么我的代码在列表中制作斐波那契序列时不起作用
- javascript - 测试字段是否为空而不是数字
- python - 在 pythonanywhere 上运行的 Slack Bot Python