Фрагмент VSCode: Как также установить тип файла?

Чтобы получить максимальный ключ / значение словаря stats:

stats = {'a':1000, 'b':3000, 'c': 100}
  • На основе клавиш

>>> max(stats.items(), key = lambda x: x[0]) ('c', 100)

  • На основании значений

>>> max(stats.items(), key = lambda x: x[1]) ('b', 3000)

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

>>> max(stats.items(), key = lambda x: x[1])[0] 'b'

Объяснение

Метод словаря items() в Python 3 возвращает объект view словаря. Когда этот объект представления итерируется, функцией max, он выводит словарные элементы как кортежи формы (key, value).

>>> list(stats.items()) [('c', 100), ('b', 3000), ('a', 1000)]

Когда вы используете lambda выражение lambda x: x[1], на каждой итерации x является одним из этих наборов (key, value). Таким образом, выбрав правильный индекс, вы выбираете, хотите ли вы сравнивать по ключам или значениям.

Python 2

Для релизов Python 2.2+ будет работать тот же код. Однако лучше использовать словарь iteritems() вместо items() .

Примечания

  • Этот ответ основан на комментариях к ответу Climbs_lika_Spyder .
  • Используемый код был протестирован на Python 3.5.2 и Python 2.7.10.

1
задан Gama11 12 March 2019 в 00:27
поделиться

1 ответ

Одна вещь, которую вы могли бы сделать, это установить языковой режим по умолчанию для новых файлов:

"files.defaultLanguage": "javascriptreact",

В противном случае есть хакерский способ, который работает хорошо. Вам понадобится расширение макроса, например multiCommand .

Вот ваш макрос, который входит в ваши настройки:

{
  "command": "multiCommand.languageMode",
  "sequence": [

    // make a new untitled file - you may or may not want this
    "workbench.action.files.newUntitledFile",
    {
      "command": "editor.action.insertSnippet",
      "args": {
        "name": "new React Pure"
      }
    },
    "workbench.action.editor.changeLanguageMode",

    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",
    "workbench.action.quickOpenNavigateNext",

    "workbench.action.acceptSelectedQuickOpenItem"
  ]
},

Есть 27 quickOpenNavigateNext основанных на том, как далеко вниз на панели быстрого выбора языкового режима я должен прокрутить, чтобы добраться до [ 115]. Ваш пробег может отличаться, если вы добавили языковые режимы по умолчанию.

Сначала этот макрос вставляет фрагмент "new React Pure" из вашего вопроса.

Затем свяжите этот макрос с некоторым брелоком и запустите его. Он создаст новый файл без названия, установит его языковой режим на "javascriptreact" и введет ваш готовый к редактированию фрагмент кода реакции.

{
    "key": "ctrl+shift+/",
    "command": "multiCommand.languageMode",
},

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

Но я полагаю, что расширение - это действительно путь. Вот этот API, который будет полезен:

openTextDocument({ language: 'javascriptreact' })

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

0
ответ дан Mark 12 March 2019 в 00:27
поделиться
Другие вопросы по тегам:

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