有人知道如何将 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 表reticulate
来knitr
编译文档。
示例.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}