ทำให้บล็อกโค้ด python จัดรูปแบบผลลัพธ์เป็นตารางองค์กร
Sep 21 2020
บริบท
ใน#+BEGIN_SRCบล็อกโค้ดที่มีภาษาเป็นcppหรือshอักขระแท็บจะถูกใช้เป็นตัวคั่นสำหรับเซลล์เมื่อใช้:results tableอาร์กิวเมนต์ส่วนหัว (ดูตัวอย่างด้านล่าง)
#+begin_src cpp :results replace output table
#include <iostream>
int main() {
std::cout << "a\ta\nbbbbb\tbbbbb" << std::endl;
return 0;
}
#+end_src
#+RESULTS:
| a | a |
| bbbbb | bbbbb |
#+begin_src sh :results replace output table
printf "%s\t%s\n" "a" "a" "bbbbbb" "bbbbbb"
#+end_src
#+RESULTS:
| a | a |
| bbbbbb | bbbbbb |
อย่างไรก็ตามพฤติกรรมเดียวกันนี้ไม่มีอยู่ในpythonบล็อกโค้ด (ดูด้านล่าง)
#+begin_src python :results replace output table
print("a\ta\nbbbbb\tbbbbb")
#+end_src
#+RESULTS:
: a a
: bbbbb bbbbb
คำถาม
ฉันจะทำให้ผลลัพธ์ของpythonบล็อกโค้ดแสดงเป็นตารางองค์กรได้อย่างไร ไม่ได้ใช้อาร์กิวเมนต์ส่วนหัวเหล่านั้นและทำให้ผลลัพธ์มีอักขระแท็บเพียงพอสำหรับการ#+RESULTSจัดรูปแบบเป็นตารางองค์กรหรือไม่
คำตอบ
9 serycjon Sep 21 2020 at 17:48
คุณสามารถส่งออกตารางขององค์กรที่จัดรูปแบบได้โดยส่งคืนรายการดังต่อไปนี้ (หมายเหตุไม่: ผลลัพธ์ผลลัพธ์):
#+begin_src python :results replace table
return (('a', 'a'), None, ('bbbbb', 'bbbbb'))
#+end_src
#+RESULTS:
| a | a |
|-------+-------|
| bbbbb | bbbbb |
ไม่มีแถวสร้างเส้นคั่น
นี่คือตัวอย่างอื่น ๆ โดยใช้ :results output
#+BEGIN_SRC python :results output table
print([['Number', 'Number * 10'], None, [1, 10], [2, 20]])
#+END_SRC
#+RESULTS:
| Number | Number * 10 |
|--------+-------------|
| 1 | 10 |
| 2 | 20 |
#+BEGIN_SRC python :results value table
return [['Number', 'Number * 10'], None, [1, 10], [2, 20]]
#+END_SRC
#+RESULTS:
| Number | Number * 10 |
|--------+-------------|
| 1 | 10 |
| 2 | 20 |
โปรดทราบว่าเมื่อใช้:results outputงานprintจะรวมอยู่ใน#+RESULTSบล็อกรหัส
#+BEGIN_SRC python :results output table
for i in range(5):
print([i, i**10])
#+END_SRC
#+RESULTS:
| 0 | 0 |