假設我有一個串列lines,其中每個元素都是一個串列
['2015', 'Friday', 9.94, 0.0]
['2015', 'Tuesday', 10.54, 0.002615]
['2015', 'Wednesday', 9.86, -0.001531]
['2016', 'Monday', 10.41, 0.007841]
['2016', 'Thursday', 11.51, 0.006415]
['2017', 'Tuesday', 8.74, -0.003711]
['2017', 'Friday', 12.62, 0.008516]
例如,如果我想獲取串列的第一個元素是 2016 并且第二個元素是星期一的所有元素,我將如何過濾掉串列?可以將其視為按列值過濾 Pandas 資料框,但使用串列串列。
uj5u.com熱心網友回復:
只需使用帶條件的串列理解:
>>> [x for x in lst if x[0] == 2016 and x[1] == "Monday"]
[[2016, 'Monday', 10.41, 0.007841]]
uj5u.com熱心網友回復:
lines = [
[2015, "Friday", 9.94, 0.0],
[2015, "Tuesday", 10.54, 0.002615],
[2015, "Wednesday", 9.86, -0.001531],
[2016, "Monday", 10.41, 0.007841],
[2016, "Thursday", 11.51, 0.006415],
[2017, "Tuesday", 8.74, -0.003711],
[2017, "Friday", 12.62, 0.008516]
]
requiredLine = [line for line in lines if line[0] == 2016 and line[1] == "Monday"]
print(requiredLine)
使用包含條件陳述句的串列理解。
uj5u.com熱心網友回復:
我會將選擇邏輯與以下過濾分開:
def func(x): return x[0] == 2016 and x[1] == "Monday"
list(filter(func, your_data))
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/351684.html
上一篇:R-根據最近的匹配列查找和更新
