Нижние элементы в списке при определенной позиции

Компонент MathJax React - это то, что вы искали.

Импортируйте пакет и заполните свойство math некоторым текстом, содержащим ваши форматы. Wrap TeX в $ или $$ и ASCIImath в `. Paste MathML as is.

Вот пример:

import React, {Component} from 'react'
import {render} from 'react-dom'
import MathJax from 'react-mathjax-preview'

const asciimath = '`sum_(i=1)^n i^3=((n(n+1))/2)^2`' # Because of the backtick
const math = String.raw`
  
    
       x  +  y 
    
  

  $$\lim_{x \to \infty} \exp(-x) = 0$$

  ${asciimath}`

class Demo extends Component {
  constructor(props) {
    super(props);
    this.state = {
      math: tex
    }
  render() {
    return 
  }
}

У них также есть более продвинутое демо внутри репозитория.

PS: Я видел одну проблему , связанную с MathML в своем репо. Обходной путь описан там.

0
задан John Kugelman 20 January 2019 в 00:08
поделиться

2 ответа

Сначала я собрал бы ваши позиции в сетке в collections.defaultdict или наборах, а затем перестроил строки строчными буквами, если их позиции существуют в этих наборах.

Демонстрация:

from collections import defaultdict

grid1 = ["PIGATOS", "ANRBKFD", "TMCAOXA", "OOBBYQU", "MACOUIV", "EEJMIWL"]

positions_words_occupy = (
    (0, 0),
    (1, 0),
    (2, 0),
    (3, 0),
    (0, 2),
    (0, 3),
    (0, 4),
    (0, 5),
    (3, 2),
    (4, 3),
    (5, 4),
    (2, 2),
    (2, 3),
    (2, 4),
)

d = defaultdict(set)
for grid, pos in positions_words_occupy:
    d[grid].add(pos)

result = []
for grid, pos in d.items():
    result.append(
        "".join(x.lower() if i in pos else x for i, x in enumerate(grid1[grid]))
    )

print(result)

Выход:

['pIgatoS', 'aNRBKFD', 'tMcaoXA', 'oObBYQU', 'MACoUIV', 'EEJMiWL']
0
ответ дан RoadRunner 20 January 2019 в 00:08
поделиться

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

Еще один способ запуска кода - создать копию grid1, а затем заменять каждое слово при каждой замене буквы. Вот новая функция, реализующая эти небольшие изменения:

def lower_words(grid, positions_words_occupy):

    new = grid1.copy()

    for position in positions_words_occupy:

        line= position[0]
        column= position[1]

        row= new[line]
        element= row[column]

        #new.remove(row)
        new_word = row[:column] + element.lower() + row[column+1:]
        new[line] = new_word

    return new

Выход работает lower_words(grid1, positions_words_occupy):

['pIgatoS', 'aNRBKFD', 'tMcaoXa', 'oObBYQU', 'MACoUIV', 'EEJMiWL']
0
ответ дан Joe Patten 20 January 2019 в 00:08
поделиться
Другие вопросы по тегам:

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