小编Ole*_*hyn的帖子

将迭代器分配给 Python 切片

在 Python 中分配给切片之前是否消耗了迭代器?通过“在分配之前消耗”我的意思是在切片分配发生之前,所有元素都在内存中同时创建(放入列表或元组中)。另一种方法是将迭代器中的元素一个一个地放入切片中,因此不会同时在内存中创建元素。

例如,让我们考虑以下代码:

from itertools import islice
from heapq import merge

c = [0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.5, 7.5, 8.5, 9.5] + list(range(10))
lo, mid, hi = 0, 10, 20
c[lo:hi] = merge(islice(iter(c), lo, mid), islice(iter(c), mid, hi))
Run Code Online (Sandbox Code Playgroud)

merge 返回一个迭代器,该迭代器选择给定合并的两个迭代器中的最小元素。这些迭代器会在切片分配发生之前被消耗吗?

python iterator slice

6
推荐指数
1
解决办法
165
查看次数

在祖先上选择:: before元素:悬停

我有一个css三角形:

.triangle {
    display: block;
    height: 95px;
    position: relative;
}

.triangle::before, .triangle::after {
    content: ' ';

    width: 0;
    height: 0;

    position: absolute;

    border-style: solid;
    border-color: transparent;
}

.triangle::before {
    border-width: 10px 50px 85px 50px;
    border-bottom-color: #F5EACB;

    z-index: 2;
}

.triangle::after {
    border-width: 10px 56px 94px 56px;
    border-bottom-color: #FFFFFF;

    left: -6px;
    top: -6px;

    z-index: 1;
}
Run Code Online (Sandbox Code Playgroud)

我想在以下情况下更改.triangle ::的border-bottom-color属性:hover应用于.triangle类.用css可以做到这一点吗?

我觉得它看起来像这样:

.triangle:hover .triangle::before {
    border-bottom-color: red;
}
Run Code Online (Sandbox Code Playgroud)

或这个:

.triangle:hover .triangle::first-child {
    border-bottom-color: red;
}
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.

我不想使用js解决方案,因为文档的其余部分是纯css.

css css-selectors pseudo-class css3 pseudo-element

4
推荐指数
1
解决办法
1095
查看次数

Windows 上的 QML:使窗口保持在顶部

我确实需要让我的窗口在 Windows 上保持领先,但 Windows 本身似乎并不愿意让我这样做。

我无法使用设置注册表值的解决方法,因为我无法要求用户注销/登录。

此外,我使用 QML 和QWidget::raise() 和 QApplication::setActiveWindow()的解决方案似乎也不起作用,因为我还没有设法使用以下代码将 QML 根对象作为 QWidget 指针获取:

QWidget* mainWin = qobject_cast<QWidget*>(engine.rootObjects().at(0));
if (mainWin)
{
    mainWin->raise();
    QApplication::setActiveWindow(mainWin);
    mainWin->activateWindow();
}
Run Code Online (Sandbox Code Playgroud)

我还尝试直接从 QML 激活窗口:

window.raise()
window.requestActivate()
Run Code Online (Sandbox Code Playgroud)

但也没有运气。

是否有任何一种方法可以在不更改注册表的情况下将窗口置于 Windows 的顶部,最好是纯粹从 QML 中?

编辑:当前使用的窗口标志是:

Qt.Popup
Qt.FramelessWindowHint
Qt.WindowStaysOnTopHint
Qt.CustomizeWindowHint
Qt.BypassWindowManagerHint
Qt.MSWindowsFixedSizeDialogHint
Run Code Online (Sandbox Code Playgroud)

我正在Windows 10 x64机器部署Qt 5.7 应用程序。我发现了这两个错误修正:

从中我可以得出结论, QWidget::activateWindow() 和 QWindow::requestActive() 应该适用于 Windows XP 和 Windows 7。

这是我的mcve,正如@derM 所问:

import QtQuick 2.7
import …
Run Code Online (Sandbox Code Playgroud)

windows qml

3
推荐指数
1
解决办法
6263
查看次数

BigQuery 是否支持分析用户定义函数?

BigQuery 支持:

  1. SQL 和 JavaScript 中的用户定义函数(UDF)。
  2. 计算一组行的值并为每行返回一个结果的分析函数。这些函数可以与OVER子句一起使用。有一组预定义的分析函数。

问题#1:“BigQuery 是否支持分析用户定义函数?”

其背后的动机是我想实现Python pandas 代码中常见的拆分-应用-组合模式。这对于组内标准化和使用组统计数据的其他转换很有用。

我在Standart SQL中做了一个小测试:

create or replace function `mydataset.mylen`(arr array<string>) returns int64 as (
  array_length(arr)
);

WITH Produce AS
 (SELECT 'kale' as item, 23 as purchases, 'vegetable' as category
  UNION ALL SELECT 'orange', 2, 'fruit'
  UNION ALL SELECT 'cabbage', 9, 'vegetable'
  UNION ALL SELECT 'apple', 8, 'fruit'
  UNION ALL SELECT 'leek', 2, 'vegetable'
  UNION ALL SELECT 'lettuce', 10, 'vegetable')
SELECT 
  item, 
  purchases, 
  category, 
  `mydataset.mylen`(item) …
Run Code Online (Sandbox Code Playgroud)

analytic-functions google-bigquery bigquery-udf

3
推荐指数
1
解决办法
1060
查看次数