我有一个函数,它将给我最外层的值(key_n)和最内层的值,附加到单个字符串,然后将它附加到包含所有单个字符串组合的字符串(希望这是有意义的)
big_milon = {'key_1' : {'{key1':'dasdadsad', 'key2': 'hat', 'key3':'cat'},
'key_2' : {'key1':'fat', 'key2': 'pat','key3':'lat'}}
def string_getter():
prop_string = ''
full_list = ''
for i,j in big_milon.items():
prop_list = []
itemcode = i
prop = list(j.values())
for l in range(len(prop)):
prop_string = prop_string +'\t'+ "{" + prop[l] + "}"
full_list = full_list + itemcode + prop_string + '\n'
prop_string = ''
return full_list
print(string_getter())
它工作得很好,除了有时候,它看起来像值之间有一个标签,它看起来像两个标签或没有标签
e.g。
print(string_getter())
答案 0 :(得分:3)
\t
不是用于间距,而是用于制表。默认情况下,\t
(或tabulation
)会跳到下一列8的倍数...(实际上为+ 1,因为我们从1开始计数)。所以,如果你在第1-8列,\t
将跳到第9列。如果你在9-16,它将跳到17,等等。
至少,这是旧的意义 - 来自机械打字机和电传打字机。 (即使有一些余地:一些机械打字机允许设置标签栏)
现代计算机和编辑器允许重新定义选项卡大小 - 通常在首选项中。他们经常允许自动将标签(\t
)更改为空格,反之亦然。
通常,这会使标签变成噩梦。您可以使用制表符(例如程序)编写文本,但如果您将其发送给某人,则大多数情况下他/她会以不同的方式看到该文本。以下是由标签和不同设置分隔的“单词”的一些示例:
此例外的是use of \t
as a data separator(或多或少与您一样)。除非有些单词长度超过8个字符,否则输出中的顺序仍然有一定程度。
另一方面,像Python这样的语言,依赖于格式代码的间距,尤其受到这个和recommend not changing the tab size from 8的影响。而Python 3显然甚至不允许混合标签和空格以避免更多的混淆。
更糟糕的是,某些上下文中的标签具有其他含义:例如在stackoverflow.com中,标签更改“区域”。如果我现在按Tab键,我将进入屏幕的其他部分。 Here是计算机使用标签的一些使用指南。