Что означает слово “литерал”?

Вы не указали, как вы хотите обрабатывать дубликаты, но чтобы получить минимум / максимум, вы можете использовать следующее:

import pandas as pd

df = pd.DataFrame(
    [
        {"name": "name1", "date_1": 11},
        {"name": "name1", "date_2": 12},
        {"name": "name1", "date_3": 43},
        {"name": "name2", "date_1": 12},
    ],
    columns=["name", "date_1", "date_2", "date_3"],
)

df.groupby('name').max().reset_index()

, что дает:

    name  date_1  date_2  date_3
0  name1    11.0    12.0    43.0
1  name2    12.0     NaN     NaN
72
задан Mario Galic 7 May 2018 в 16:14
поделиться

9 ответов

Литерал является "любой нотацией для [1 125] представление значение в исходном коде" (, Википедия )

(Контрастируют это с [1 110] идентификаторы , которые относятся к значению в памяти.)

Примеры:

  • "hey" (строка)
  • false (булевская переменная)
  • 3.14 (вещественное число)
  • [1,2,3] (список чисел)
  • (x) => x*x (функция)
  • /^1?$|^(11+?)\1+$/ (regexp)

Некоторые вещи, которые не являются литералами:

  • std::cout (идентификатор)
  • foo = 0; (оператор)
  • 1+2 (выражение)
110
ответ дан 24 November 2019 в 12:27
поделиться

Литерал является присвоением на явное значение, такой как

int i = 4;  // i is assigned the literal value of '4'
int j = i   // j is assigned the value of i.  Since i is a variable,  
            //it can change and is not a 'literal'

РЕДАКТИРОВАНИЕ: Как указано, само присвоение не имеет никакого отношения к определению литерала, я использовал присвоение в своем примере, но литерал может также быть передан в метод, и т.д.

15
ответ дан Ed S. 24 November 2019 в 12:27
поделиться

Литерал является значением, которое было трудно кодировано непосредственно в Ваш источник.

, Например:

string x = "This is a literal";
int y = 2; // so is 2, but not y
int z = y + 4; // y and z are not literals, but 4 is
int a = 1 + 2; // 1 + 2 is not a literal (it is an expression), but 1 and 2 considered separately are literals

Некоторые литералы могут иметь специальный синтаксис, таким образом, Вы знаете то, что вводит литерал:

//The 'M' in 10000000M means this is a decimal value, rather than int or double.
var accountBalance = 10000000M; 

то, Что устанавливает их кроме переменных или ресурсов, - то, что компилятор может рассматривать их как константы или выполнить определенную оптимизацию с кодом, где они используются, потому что бесспорно, что они не изменятся.

76
ответ дан Joel Coehoorn 24 November 2019 в 12:27
поделиться

Литерал - при включении значения в исходный код (в противоположность ссылке на переменную или константу). Например:

int result = a + 5; // a is a variable with a value, 5 is a literal

string name = "Jeff Atwood"; // name is a variable initialized
                             // with the string literal, "Jeff Atwood"

int[] array = new int[] {1, 2, 3}; // C# has array literals (this is actually three
                                   // int literals within an array literal)

, Если литерал представляет некоторое количество, как физическая постоянная, лучше дать ему имя вместо того, чтобы писать тот же литерал везде, Вам нужен он. Тот путь при чтении исходного кода Вы знаете то, что номер означает , который обычно более важен, чем его значение (который мог измениться так или иначе).

const int maxUsers = 100;
const double gravitationalAcceleration = 9.8;

Обычно единственные числовые литералы я использую (кроме того, для инициализации констант как вышеупомянутый), 0 или 1, и иногда 2, если я пропускаю любой объект в цикле. Если значение из числа более важно, чем его фактическое значение (это обычно), его лучше для именования его.

11
ответ дан Matthew Crumley 24 November 2019 в 12:27
поделиться

Литеральное значение значение, но значение могло также быть сохранено в переменной. В операторе

string str = "string literal";

существует строковая переменная (ул.) и строковый литерал. После того, как оператор выполняется, у них обоих есть то же значение.

знать, что на многих языках переменная и литеральное значение должны не обязательно даже быть тем же типом. Например:

int a = 1.0;

литеральное значение выше является типом с плавающей точкой. Значение будет принуждено компилятором для вписывания в международную переменную.

Для другого примера, в первой строке кода C++ выше типа строкового литерала не на самом деле тип string библиотеки вообще. Для поддержания назад совместимости с C строковые литералы в C++ являются массивами символов.

6
ответ дан Bill the Lizard 24 November 2019 в 12:27
поделиться

Литерал - при помещении его в код. Таким образом, строковый литерал

string s = "SomeText";

, Это в противоположность созданию строки или принятию его в качестве параметра.

3
ответ дан Anthony D 24 November 2019 в 12:27
поделиться

Быстрый пример:

интервал my_int_var = 723;

723 - Этот набор символов относится к литерал целочисленное значение.

my_int_var - Этот набор символов относится к переменная целочисленное значение.

5
ответ дан mbeckish 24 November 2019 в 12:27
поделиться

Я услышал, что строковые литералы раньше небрежно относились к тому, что спецификация C# на самом деле называет дословными строковыми литералами. Регулярный строковый литерал допускает выход определенных символов (снабженный префиксом a), как \t для вкладки. Дословный строковый литерал предварительно ожидается и обработал дословно, \не имеет никакого особого значения.

//regular
string regular = "\thello world";
//verbatim
string verbatim = @"C:\";
//the regular equivalent of this would be "C:\\"
1
ответ дан Timothy Carter 24 November 2019 в 12:27
поделиться

Обычно, когда кто-то использует литерал слова, они означают, что значение разборчиво из кода (текст) как показано во многих примерах в других сообщениях.

Другое общее использование для значений, которые преобразовываются в непосредственные значения в блоке. Это значения, которые вставляются непосредственно в машинную команду вместо того, чтобы требовать загрузок регистра.

2
ответ дан Peter Mortensen 24 November 2019 в 12:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: