AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / coding / 问题

All perguntas(coding)

Martin Hope
Shreyash.K
Asked: 2024-01-15 18:17:26 +0800 CST

Comportamento estranho do operador ternário com dardo em cascata

  • 9

Por que ambos os resultados são impressos da mesma forma?

final list1 = [ "a", "b", "c" ];
final result1 = true ? list1 : list1..removeWhere((e) => e == "a");
print(result1); // prints ["b", "c"]

final list2 = [ "a", "b", "c" ];
final result2 = false ? list2 : list2..removeWhere((e) => e == "a");
print(result2); // prints ["b", "c"]

Isso acontece apenas em condições ternárias. Quando normal, if-else, isso funciona perfeitamente.

dart
  • 2 respostas
  • 73 Views
Martin Hope
ggulgulia
Asked: 2024-01-15 17:11:01 +0800 CST

Compreendendo o tipo de retorno de std::ranges::sort com argumentos temporários e pré-valor

  • 9

Tenho problemas para entender quando um tipo deduz ao std::ranges::danglingusar variáveis ​​​​locais nomeadas versus um pré-valor como argumentos para std::ranges::sortalgoritmo. Por exemplo, tenho uma função que retorna a prvalue para um contêiner padrão, digamos std::vector que uso diretamente como argumento para std::ranges::sort, então espero obter um erro de compilação std::ranges::danglingquando tento desreferenciar o iterador, que é o que recebo:

#include <vector>
#include <algorithm>

auto get_data(){
    return std::vector<int>{1, 2, 99, 5, 9, 4};
}

auto get_sorted(){
    return std::ranges::sort(get_data());
}


int main(){
    auto it = get_sorted();
    *(it-1); //Compiler Error because it is a std::ranges::dangling iterator
}

No entanto, se eu alterar get_sortedligeiramente a função acima para primeiro capturar o vetor em uma variável nomeada e usá-lo para retornar o resultado de std::ranges::sort, então não recebo um iterador pendente, mesmo mainque o vetor alocado na variável nomeada deva ter sido destruído após a função get_sortedretornar:

auto get_sorted(){
    auto vec = get_data();
    return std::ranges::sort(vec);
}


int main(){
    auto it = get_sorted();
    *(it-1); //Okay result  = 99
}

Mesmo se eu mudar get_sortedpara usar um contêiner baseado em variável nomeada declarado localmente, recebo um comportamento em que o compilador não reclama sobre o iterador pendente ao ser desreferenciado em seu chamador (digamos, mainfunction).

//doesn't return a std::ranges::dangling
auto get_sorted(){
    std::vector<int> vec{1, 2, 99, 5, 9, 4};
    return std::ranges::sort(vec);
}

e quando passo um vetor pré-valor para o std::ranges::sortalgoritmo, recebo novamente o std::ranges::danglingesperado

//returns a std::ranges::dangling
auto get_sorted(){
    std::vector<int> vec{1, 2, 99, 5, 9, 4};
    return std::ranges::sort(std::vector<int>{1, 2, 99, 5, 9, 4});
}

Para os casos em que não recebo um erro do compilador, std::ragnes::danglingobservo um erro de tempo de execução ao compilar com fSanitize=addressa opção, o que provavelmente ocorre porque os vetores que foram alocados na variável nomeada dentro da get_sortedfunção saíram do escopo assim que a última função devolvida.

No entanto, gostaria de entender por que o uso de variável nomeada dentro de uma função altera o tipo de retorno da get_sortedfunção e possível um guia sobre como usar contêineres temporários e pré-valores corretamente para obter std::ranges::danglingsempre que possível.

c++
  • 3 respostas
  • 135 Views
Martin Hope
suyog
Asked: 2024-01-13 20:52:23 +0800 CST

Como desenhar um arco em uma superfície

  • 9

quero desenhar um semicírculo dentro de uma superfície. Então pensei em usar, pygame.draw.arc() mas não consigo descobrir como desenhar o arco dentro de uma superfície. Vi os documentos oficiais e estou usando math.radians()para converter graus em radianos, mas não consigo ver o arco. Um círculo está sendo desenhado...

import pygame
import math

pygame.init()
width, height = 800, 600
screen = pygame.display.set_mode((width, height))

surf = pygame.Surface((100, 100))
surf.fill("green")
rect = surf.get_rect(center=(100, 100))

run = 1
while run:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = 0

    screen.fill((255, 202, 135))
    pygame.draw.circle(surf, (255, 255, 255), (30,30),25)
    pygame.draw.arc(surf, (255, 255, 255), rect, math.radians(270), math.radians(90))
    screen.blit(surf, rect)

    pygame.display.flip()
pygame.quit()

desde já, obrigado

python
  • 1 respostas
  • 47 Views
Martin Hope
Strasse34
Asked: 2024-01-10 04:15:26 +0800 CST

A ordem de execução é diferente em compiladores diferentes [duplicado]

  • 9
Esta pergunta já tem respostas aqui :
Por que cout << não imprime entradas da esquerda para a direita? (3 respostas)
Quais são as garantias da ordem de avaliação introduzidas pelo C++17? (3 respostas)
Fechado há 8 horas .

Este código fornece resultados diferentes no XCode e no Visual Studio:

#include <iostream>

using namespace std;

int f() {
    cout << 'A';
    return 1;
}

int main() {
    cout << '.' << f();
    return 0;
}

No Visual Studio ele gera

A.1

No XCode ele gera

.A1

Obviamente, eu esperaria que ambos os compiladores produzissem a mesma coisa. É de se esperar que não faça isso? É uma coisa conhecida ou há algo que eu possa fazer sobre isso?

c++
  • 1 respostas
  • 82 Views
Martin Hope
ksinva
Asked: 2024-01-09 02:18:00 +0800 CST

Como fazer referência à última coluna em pivot_longer() sem nomeá-la ou fornecer o número do índice?

  • 9

Estou escrevendo uma função para dinamizar uma tabela de dados para um formato longo. Para o cols = argumento, o nome da primeira coluna será sempre o mesmo, mas a coluna final (e o número de colunas) mudará. Existe uma maneira de pegar o "resto" das colunas sem nomeá-las ou por seus índices?

Digamos que eu tenha estes dados de amostra:

data <- structure(list(Site = c("A", "B"), Group = c("1", "2"), grip = c("S", 
"H"), height = c("S", "T"), width = c("W", "N"), QA = c("Y", 
"N")), class = "data.frame", row.names = c(NA, -2L))

É assim:

  Site Group grip height width QA
1    A     1    S      S     W  Y
2    B     2    H      T     N  N

E às vezes o conjunto de dados terá mais colunas. Digamos que eu queira obter colunas grip:QA, sem nomear o controle de qualidade ou fornecer seu número de índice. Eu tentei o seguinte:

data %>%
  pivot_longer(cols = grip:everything(),
               names_to = "Name",
               values_to = "value")

Mas recebo o aviso Warning message: In x:y : numerical expression has 6 elements: only the first usede ele não gira da maneira que desejo. O que estou tentando alcançar é possível?

  • 2 respostas
  • 43 Views
Martin Hope
Samuel
Asked: 2024-01-08 18:13:31 +0800 CST

Localização do erro de sintaxe imprecisa ao usar ForEach-Object em vez de foreach

  • 9

Na maioria das vezes, o relatório de erros no PowerShell é muito útil. Vejo erros, vejo a origem, mas notei que quaisquer erros nos pipelines ForEach-Object perdem sua linha de origem e a pilha de erros simplesmente aponta para a linha de código com a extensão ForEach-Object.

Exemplo de localização de erro incorreta

Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

[cultureinfo]::CurrentUICulture = 'en-US'

function Test-Something($val)
{
    # var is not defined here
    Write-Host($undefined_variable)
}

@("a","b") | ForEach-Object{
    $entry = $_

    Test-Something $entry
}

Resulta em

ForEach-Object : The variable '$undefined_variable' cannot be retrieved because it has not been set.
In D:\dummy.ps1:12 Line:14
+ @("a","b") | ForEach-Object{
+              ~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (undefined_variable:String) [ForEach-Object], RuntimeException
    + FullyQualifiedErrorId : VariableIsUndefined,Microsoft.PowerShell.Commands.ForEachObjectCommand

A linha 12aponta para @("a","b") | ForEach-Object{, que obviamente não é o local do erro.

Exemplo muito mais utilizável com foreach

Agora estou usando um foreach(apenas as últimas 4 linhas de código foram alteradas)

Set-StrictMode -Version Latest
$ErrorActionPreference = "Stop"

[cultureinfo]::CurrentUICulture = 'en-US'

function Test-Something($val)
{
    # var is not defined here
    Write-Host($undefined_variable)
}

$data = @("a","b")

foreach($entry in $data)
{
    Test-Something $entry
}

O erro agora é muito mais utilizável, na verdade aponta para a linha de erro 9paraWrite-Host($undefined_variable)

The variable '$undefined_variable' cannot be retrieved because it has not been set.
In D:\dummy.ps1:9 Line:16
+     Write-Host($undefined_variable)
+                ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (undefined_variable:String) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : VariableIsUndefined

Isso está relacionado à natureza da tubulação dos operadores do gasoduto ou estou entendendo algo errado. O primeiro cenário torna o rastreamento de erros muito difícil quando há mais funções entre eles. Na maioria dos casos, posso mudar, foreachmas adoraria entender o que realmente está acontecendo.

powershell
  • 2 respostas
  • 105 Views
Martin Hope
INeedHelp101
Asked: 2024-01-04 07:05:32 +0800 CST

Remover o primeiro e o último caractere da string somente se eles corresponderem no shell?

  • 9

Basicamente, estou lendo a primeira linha de um arquivo e quero que o primeiro e o último caracteres sejam cortados, mas apenas se forem iguais a um determinado caractere. Estou tentando remover "{" e "}" de uma string, mas SOMENTE SE FOREM O PRIMEIRO E O ÚLTIMO CARACTERES, RESPECTIVAMENTE.

Entrada:

{Some_random_data_here, {more data here}, test}  

Saída:

Some_random_data, {more data here}, test

Aqui está o comando completo que estou usando, que é capaz de remover o primeiro, mas não o último.

$(head -n 1 "$filePath" | sed s/^{//;s/}$//)
bash
  • 5 respostas
  • 54 Views
Martin Hope
Archie
Asked: 2024-01-04 05:06:00 +0800 CST

O operador de colchetes XPath produz resultados inesperados

  • 9

Considere este documento XML:

<foo>
    <bar id="aaa"/>
    <jam>
        <bar id="bbb"/>
    </jam>
</foo>

Estou tentando encontrar o primeiro <bar>elemento no documento.

Aqui está o que descobri:

Teste# Expressão XPath Expressão de Avaliação Resultado
1 //bar @id aaa,bbb
2 //bar[1] @id aaa,bbb
3 (//bar)[1] @id aaa

O que não entendo é por que o Teste nº 2 retorna aaa, bbbem vez de apenas aaa. É como se a [1]operadora não estivesse funcionando.

Meu entendimento foi que no Teste nº 2, a //barexpressão encontraria os dois nós e então o [1]operador escolheria o primeiro. Obviamente, estou faltando alguma coisa.

Isso parece ser confirmado pelo Teste nº 3, que aparentemente é como expressar o que eu realmente quero.

Além disso, se você alterar o documento XML para isto:

<foo>
    <bar id="aaa"/>
    <bar id="bbb"/>
</foo>

então você consegue o que eu esperava ver:

Teste# Expressão XPath Expressão de Avaliação Resultado
1 //bar @id aaa,bbb
2 //bar[1] @id aaa
3 (//bar)[1] @id aaa

Que sutileza estou faltando aqui sobre como [1]deve funcionar?

xpath
  • 2 respostas
  • 41 Views
Martin Hope
jpsmith
Asked: 2024-01-04 04:32:58 +0800 CST

Usando pivot_longer para múltiplas colunas desarrumadas

  • 9

Eu tenho estes dados (desorganizados) contendo a fase do regime medicamentoso de cada paciente (ip ou cp), o nome do medicamento (codificado como um número) e informações sobre a dose para vários medicamentos:

df_have

#   id ip_drug1 ip_dose1 ip_drug2 ip_dose2 cp_drug1 cp_dose1 cp_drug2 cp_dose2
# 1 A1        1      300        3      100        6      500        7      100
# 2 A2        1      300        2      200       11      300       NA       NA
# 3 A3        1      500       NA       NA        9      100        5     1500

Gostaria de deixar esses dados organizados e em formato longo:

df_want

#    id phase drug dose
# 1  A1    ip    1  300
# 2  A1    ip    3  100
# 3  A1    cp    6  500
# 4  A1    cp    7  100
# 5  A2    ip    1  300
# 6  A2    ip    2  200
# 7  A2    cp   11  300
# 8  A2    cp   NA   NA
# 9  A3    ip    1  500
# 10 A3    ip   NA   NA
# 11 A3    cp    9  100
# 12 A3    cp    5 1500

Consegui obter o quadro de dados desejado com uma combinação de tidyr::pivot_longer,, dplyr::mutatee tidyr::pivot_wider(e dplyr::select):

library(tidyr)
library(dplyr)

df_have %>% 
  pivot_longer(cols = -id, 
               names_to = c("phase", "type"),
               names_pattern = "(cp|ip)_(drug|dose)") %>%
  mutate(temp = row_number(), 
         .by = c(id, phase, type)) %>%
  pivot_wider(names_from = type, 
              values_from = value) %>%
  select(-temp)

No entanto, o código de várias etapas acima é muito lento em meus dados reais muito grandes. Eu gostaria de realizar essa transformação mais rapidamente em tidyr/ dplyr, de preferência em uma única pivot_wideretapa. Isso é possível?


Quadros reproduzíveis df_havee df_wantde dados:

# have
df_have <- data.frame(id = paste0("A", 1:3), 
                 ip_drug1 = 1,
                 ip_dose1 = c(300, 300, 500),
                 ip_drug2 = c(3, 2, NA),
                 ip_dose2 = c(100, 200, NA),
                 cp_drug1 = c(6, 11, 9),
                 cp_dose1 = c(500, 300, 100),
                 cp_drug2 = c(7, NA, 5),
                 cp_dose2 = c(100, NA, 1500))

# want
df_want <- data.frame(id = rep(paste0("A", 1:3), each = 4),
                      phase = rep(rep(c("ip", "cp"), each = 2), times = 3),
                      drug = c(1, 3, 6, 7, 1, 2, 11, NA, 1, NA, 9, 5),
                      dose = c(300, 100, 500, 100, 300, 200, 300, NA, 500, NA, 100, 1500))
  • 2 respostas
  • 96 Views
Martin Hope
EmmaV97
Asked: 2024-01-03 21:47:39 +0800 CST

Como comparar listas aninhadas em dataframe por linha em R?

  • 9

Tenho um conjunto de dados que contém listas de valores em duas colunas e quero poder comparar as listas entre si, para cada linha. Por exemplo, tenho 3 grupos, nos quais se espera certos números e se observam outros números. Quero comparar a coluna Observado com a coluna Esperado para ver quais números eram esperados, mas não observados.

Grupo Esperado Observado
A 4:8 c(4, 5, 7)
B 7:12 c(7, 8, 9, 10, 12)
C 6:10 c(6, 8, 10)

Quero uma coluna extra chamada Missing, que contenha todos os valores que estão em Expected, mas não em Observed.

Grupo Esperado Observado Ausente
A 4:8 c(4, 5, 7) c(6, 8)
B 7:12 c(7, 8, 9, 10, 12) 11
C 6:11 c(6, 8, 11) c(7, 9, 10)

Tentei usar setdiff() e base R, pois ele pode encontrar valores diferentes entre duas listas. No entanto, não consigo fazê-lo funcionar da maneira que compara as listas por linha.

df$Missing <- setdiff(df$Expected, df$Observed) 

df$Missing <- df$Expected[!(df$Expected %in% df$Observed)]

Ambas as opções resultam na lista completa de Esperados. Esta é a saída que recebo:

Grupo Esperado Observado Ausente
A 4:8 c(4, 5, 7) 4:8
B 7:12 c(7, 8, 9, 10, 12) 7:12
C 6:11 c(6, 8, 11) 6:11

Existe alguma maneira de comparar as duas listas (Observado x Esperado) por grupo, para ver quais valores estão faltando por grupo? Obrigado desde já por qualquer ajuda!

  • 3 respostas
  • 71 Views
Prev
Próximo

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Reformatar números, inserindo separadores em posições fixas

    • 6 respostas
  • Marko Smith

    Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não?

    • 2 respostas
  • Marko Smith

    Problema com extensão desinstalada automaticamente do VScode (tema Material)

    • 2 respostas
  • Marko Smith

    Vue 3: Erro na criação "Identificador esperado, mas encontrado 'import'" [duplicado]

    • 1 respostas
  • Marko Smith

    Qual é o propósito de `enum class` com um tipo subjacente especificado, mas sem enumeradores?

    • 1 respostas
  • Marko Smith

    Como faço para corrigir um erro MODULE_NOT_FOUND para um módulo que não importei manualmente?

    • 6 respostas
  • Marko Smith

    `(expression, lvalue) = rvalue` é uma atribuição válida em C ou C++? Por que alguns compiladores aceitam/rejeitam isso?

    • 3 respostas
  • Marko Smith

    Um programa vazio que não faz nada em C++ precisa de um heap de 204 KB, mas não em C

    • 1 respostas
  • Marko Smith

    PowerBI atualmente quebrado com BigQuery: problema de driver Simba com atualização do Windows

    • 2 respostas
  • Marko Smith

    AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos

    • 1 respostas
  • Martin Hope
    Fantastic Mr Fox Somente o tipo copiável não é aceito na implementação std::vector do MSVC 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant Encontre o próximo dia da semana usando o cronógrafo 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor O inicializador de membro do construtor pode incluir a inicialização de outro membro? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský Por que os conceitos do C++20 causam erros de restrição cíclica, enquanto o SFINAE antigo não? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul O C++20 mudou para permitir a conversão de `type(&)[N]` de matriz de limites conhecidos para `type(&)[]` de matriz de limites desconhecidos? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann Como/por que {2,3,10} e {x,3,10} com x=2 são ordenados de forma diferente? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller O ponto e vírgula agora é opcional em condicionais bash com [[ .. ]] na versão 5.2? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench Por que um traço duplo (--) faz com que esta cláusula MariaDB seja avaliada como verdadeira? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng Por que `dict(id=1, **{'id': 2})` às vezes gera `KeyError: 'id'` em vez de um TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob: MobileAds.initialize() - "java.lang.Integer não pode ser convertido em java.lang.String" para alguns dispositivos 2024-03-20 03:12:31 +0800 CST

Hot tag

python javascript c++ c# java typescript sql reactjs html

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve