我编写了一个python函数来生成list
个单词。首先,它读取由新行分隔的单词组成的文件。根据单词的不同,它要么将其插入list
,要么插入一个由制表符表示的空格。以下是代码的相关部分:
xclusives1
、xclusives2
、dups
是list
s
generator
是包含函数的类的实例。你知道吗
def xfile1(self):
for item1 in self.lines1:
for item2 in self.lines2:
if item1 == item2:
self.xclusives1.append("\t")
self.xclusives2.append("\t")
self.dups.append(item1)
break
self.xclusives1.append(item1)
self.xclusives2.append("\t")
self.dups.append("\t")
...
...
...
...
print generator.xclusives2
如您所见,我在list
后面附加了文件中的选项卡和项。我希望输出转到一个文件,所以在命令行上,我执行以下操作:
comm.py
是程序名,test
,test2
是测试输入。你知道吗
$python comm.py test test2 >commOut
在emacs中打开输出文件会得到如下结果:
'\t'、'\t'、'\t'、'一个字\n'、'另一个字\n'、。。。你知道吗
每个list
项都用单引号括起来,所有隐藏的字符都显示在emacs上,即使在函数从中获取单词的原始列表中,新行是隐藏的
如何使换行符和制表符显示为正确的隐藏字符?你知道吗
这是因为当您打印列表时,它会打印所有项目的repr。这样你就不会混淆列表
[1, '1']
和['1', 1]
(其中1
是int,'1'
是str)要解决这个问题,如果所有的项目都是字符串,请打印它们,并用
', '
连接起来或者,如果你还想在字符串周围加引号
注意
str(string) == string
。(str('Hello world!') == 'Hello world!'
)和repr(string) != string
(repr('Hello world!') == "'Hello world!'"
)相关问题 更多 >
编程相关推荐