如何打印Python列表中以制表符分隔的值?

1,158 阅读4分钟

问题陈述。在 Python中如何用tab作为分隔符来分隔列表中的项目?

例子:下面的例子展示了所给问题陈述的一个例子。

# Given list
lst = ['100', '200', '300', '400', '500']
# Some way to print the list values separated by tab

# Expected Output --> 100  200  300  400  500

这个问题是不言而喻的。因此,不用浪费太多时间,让我们深入了解解决这个问题的各种方法。

方法1:使用转义序列(Escape Sequence)

在Python中,我们可以使用print语句表示多个字符串。我们只需在它们之间添加一个逗号',',它们就会被打印出来,中间有一个空格。请参考下面的例子。

name = "Fin"
print(" Hello", name)

# Hello Fin

在Python字符串中,反斜杠**"/"** 是一个独特的字符,同样也被称为转义字符。它被用来处理某些空白字符,例如, "\t "是一个制表符"\n "是一个换行符

例子:

print("Hello \t Welcome to Finxter")

# Hello    Welcome to Finxter

另一方面,用反斜杠"\"作为一个独特字符的前缀,可以将其转化为一个标准字符。这也被称为转义。例如,"\'" 是单引号字符。这里有一个相关的问题:"如何在 Python 中打印引号?" 在这种情况下,我们可以使用转义,如下图所示。

print("I love \'Python\'")

# I love 'Python'

你可以直接使用转义序列 "\t" tab 字符,在 Python 中打印一个以 tab 分隔的列表。

解决方案

# Given list
lst = ['100', '200', '300', '400', '500']
print(lst[0]+"\t"+lst[1]+"\t"+lst[2]+"\t"+lst[3]+"\t"+lst[4])

输出:

100	200	300	400	500

方法2: 将 \t 赋值给 Sep

在Python中,打印函数有两个很少使用的参数。参数sep 表示在对象之间打印的分隔符。参数end 定义了每一行的结尾部分的内容。

例子:

a = 'hello'
b = 'world'
print(a, b, sep=' Python ', end='!')

# hello Python world!

我们可以使用转义序列**"\t "**并将其赋值给参数 "sep"来打印Python中用制表符分隔的列表值。

例子:

# Function that will separate the list by tab
def list_tab(lst):
    print(*lst, sep='\t')


# Given list
lst = ['Python', 'list', 'separated', 'by', 'tabs']
# Calling the function
list_tab(lst)

输出:

Python	list	separated	by	tabs

*lst操作符的作用是什么?
在Python中,我们在lst前使用了***运算符,因为*lst**意味着可迭代的解包。迭代器在每次迭代时都会被解包。这个策略在打印带有制表符空格的数据时非常有帮助,没有逗号。与其开发各种函数来消除逗号,你可以使用这个解包操作符来分隔它们。

方法3:使用Map和Join

在查看解决方案之前,我们需要了解Python中的几个内置方法。

  1. map() 是Python中的一个内置方法,它接受一个函数和一个可迭代对象作为输入。然后,它通过将迭代器作为输入传给函数来执行该函数。
  2. str.join(iterable): 将一个 中的元素连接起来。其结果是一个字符串,而迭代器中的每个元素都被 "粘在一起",其上的字符串被称为分隔符。iterable

因此,你可以简单地使用str 方法和列表作为map方法的参数,然后通过使用**'\t'**转义序列和分隔符,在map 方法的输出上应用join 方法。

例子:

lst = ['Python', 'list', 'separated', 'by', 'tabs']
print('\t'.join(map(str, lst)))

输出:

Python	list	separated	by	tabs

方法4:使用join()与List Comprehension

如果你不太喜欢map() 方法,那么我为你准备了另一种变通方法。你可以使用列表理解和join() 方法来实现你的目标。

例子:

lst = ['Python', 'list', 'separated', 'by', 'tabs']
print('\t'.join([str(x) for x in lst]))

# Python	list	separated	by	tabs

列表理解是一种创建列表的紧凑方式。简单的公式是[表达式+上下文]。
表达式:对每个列表元素做什么?
语境:要选择哪些元素?上下文由任意数量的for和if语句组成。
例子[x for x in range(3)] 创建列表[0, 1, 2]

总结

在这篇文章中,我们讨论了打印 Python 列表中以制表符分隔的值的许多方法。我希望它是有帮助的,它回答了你所有的疑问。对于更多像这样的解决方案和讨论。