从字典输出乳胶表的函数

从字典输出乳胶表的函数

有人知道如何将 Python 中的字典转换为可以粘贴到 Latex 中以创建包含键和值的两列表吗?我对 Python 非常了解。

例如,一个函数可以转换为 {(1, 2): 0.34, (1, 4): 0.44, (2, 3): 0.34}

进入:

\begin{center}
\begin{tabular}{ |c|c| } 
 \hline
 Edge & Edge centrality\\
 \hline
 (1, 2)& 0.34\\
 (1, 4)& 0.44\\
 (2, 3)& 0.34\\
 \hline
\end{tabular}
\end{center}

我在想象有关使用字符串的事情?

答案1

以下 Python 代码:

d = {(1, 2): 0.34, (1, 4): 0.44, (2, 3): 0.34}

def dict2ltxtab(d: dict, bare=False, headrow = None):
    if not bare:
        print(r"\begin{center}")
        print(r"\begin{tabular}{|c|c|}")
        print(r"\hline")
    if headrow and len(headrow) >= 2:
        print(headrow[0], "&", headrow[1], r"\\")
        print(r"\hline")
    for k, v in d.items():
        print(k, "&", v, r"\\")
    if not bare:
        print(r"\hline")
        print(r"\end{tabular}")
        print(r"\end{center}")

使用以下方式调用时会产生dict2ltxtab(d)

\begin{center}
\begin{tabular}{|c|c|}
\hline
(1, 2) & 0.34 \\
(1, 4) & 0.44 \\
(2, 3) & 0.34 \\
\hline
\end{tabular}
\end{center}

当被调用时dict2ltxtab(d, headrow=("Edge", "Edge centrality"))

\begin{center}
\begin{tabular}{|c|c|}
\hline
Edge & Edge centrality \\
\hline
(1, 2) & 0.34 \\
(1, 4) & 0.44 \\
(2, 3) & 0.34 \\
\hline
\end{tabular}
\end{center}

如果您还给出周围环境bare = True的参数,则dict2ltxtab它们不会包含在输出中。

答案2

不确定您在 python 中所说的“字典”或“函数”是什么意思,但是如果您有可以在 python 中显示为数据框的数据,那么您也可以将这个数据框传递给 R 并在(和包的帮助下)动态将其转换为 LaTeX 表reticulateknitr编译文档。

示例.Rnw


在此处输入图片描述


\documentclass{article}
\usepackage{booktabs}
\begin{document}

<<echo=F>>=
library(reticulate) # R interface to python
@

\subsection*{The python code} 

<<data, engine="python">>=
import pandas as pd
data = [['(1,2)',0.34],['(1,4)',0.44],['(2,3)',0.77]]
df = pd.DataFrame(data,columns=['Edge','Edge centrality'])
df
@

\subsection*{The \LaTeX\ table}

<<echo=F,results='asis'>>=
library(xtable)
print(xtable(py$df,caption="My python data."), 
      booktabs=T,
      caption.placement="top",
      include.rownames=F)
@

\end{document}

相关内容