python如何左对齐输出数列?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何左对齐输出数列?相关的知识,希望对你有一定的参考价值。

如图,每一列数据对应于上面的变量(列表),我想把这些数据都左对齐输出,烦请各路大神指点迷津。

list1=['你haodajerect',232,2323.434,32323,2332,23,23234,'ssdfsdf']
list2=['你',2,32,23.3434,3.2434323,2332,23,'s','ssdfsdf']
print("左对齐————————————————————")
for item1 in list1:
print(str(item1).ljust(15,'*'),end=' ')
print('\\r\\n')
for item2 in list2:
print(str(item2).ljust(15), end=' ')

print('\\r\\n右对齐————————————————————')
for item1 in list1:
print(str(item1).rjust(15,'*'),end=' ')
print('\\r\\n')
for item2 in list2:
print(str(item2).rjust(15), end=' ')

print('\\r\\n居中对齐————————————————————')
for item1 in list1:
print(str(item1).center(15,'*'),end=' ')
print('\\r\\n')
for item2 in list2:
print(str(item2).center(15,"*"), end=' ')

Python中print输入打印左对齐,右对齐,居中对齐等

参考技术A 用格式化输出。
查下format()的使用。

我如何通过在 R 中使用 cat 来解决这个对齐问题,它会一直向左对齐而不是向右对齐

【中文标题】我如何通过在 R 中使用 cat 来解决这个对齐问题,它会一直向左对齐而不是向右对齐【英文标题】:How can i fix this alignment issue with using cat in R, where it keeps aligning a bit to the left instead of right 【发布时间】:2021-08-07 10:33:44 【问题描述】:

我试图让我的输出看起来像这样,它显示所有内容都向右对齐并且间隔均匀: Expected output

但由于某种原因,我自己的输出最终被移到了左边:

Board(playerA, header = TRUE)
   Name    0s   1s   2s   3s   5s   X    Out  Tot 
T Smith    1    1    1    2    2    0    0   19

以下代码是一个具有以下属性的矩阵:

initialise <- function(name) 
  matrix(
    rep(0, 8),
    nrow = 1, 
    ncol = 8,
    byrow = TRUE,
    dimnames = list(name,c("0s", "1s", "2s", "3s", "5s", "X", "Out", "Tot")
    )
  )   

这是我为了打印矩阵并将列归类到“名称”一词以及空格并使其看起来均匀而执行的代码:

Board <- function(player, header = FALSE) 
  if (header) 
    cat("   Name   ")

    for (name in colnames(player)) 
      cat(" ")
      cat(format(name, width = 4))
    
    cat("\n")

    cat(rownames(player))


    for (i in 1:length(player)) 
      cat(" ")
      cat(format(player[i], width = 4))
    
  
#test code
playerA <- initialise("T Smith")
Board(playerA, header = TRUE)

如果有人能提供帮助,我将不胜感激!

【问题讨论】:

@GKi 你能说得更具体点吗? @GKi 抱歉没有工作导致它未对齐 请不要在问题中编辑解决方案公告。接受(即单击旁边的“勾号”)现有答案之一,如果有的话。如果现有答案尚未涵盖您的解决方案,您还可以创建自己的答案,甚至接受它。 【参考方案1】:

您必须将播放器名称扩展/修剪到标题中cat(" Name ") 的宽度。

Board <- function(player, header = FALSE) 
  if (header) 
    cat("   Name")
    
    for (name in colnames(player)) 
      cat(" ")
      cat(format(name, width = 4, justify = "right"))
    
    cat("\n")
  
  cat(strtrim(paste(rownames(player), "      "), 7))

  for (i in 1:length(player)) 
    cat(" ")
    cat(format(as.character(player[i]), width = 4, justify = "right"))
  

Board(playerA, header = TRUE)
#   Name   0s   1s   2s   3s   5s    X  Out  Tot
#T Smith    0    0    0    0    0    0    0    0   0

【讨论】:

只需删除 Name 后面的空格,并在 strtrim 中减少它。 -> 查看更新。

以上是关于python如何左对齐输出数列?的主要内容,如果未能解决你的问题,请参考以下文章

Python初学者,为啥我爬取的网页数据输出列表没对齐

C语言输出如何右对齐?

在python3中多次输出字符串,如何让上下字符串对齐。

C语言输出如何右对齐

如何使用 python 3 和 tkinter 模块从右到左对齐菜单栏中的项目?

Python中如何对字符串进行左,右,居中对齐