如何使用"#"?启动python变量名称?

时间:2014-06-19 20:06:01

标签: python special-characters

我编写的代码可以执行几个步骤来处理某些文件(BAM文件,以防您好奇,但这与我的问题无关:http://www.broadinstitute.org/igv/BAM)让他们做好准备用他人写的软件进行分析。

在处理BAM文件的代码中,我想包含几行来构建一个数据库,该数据库记录有关已处理文件的位置和其他相关信息。这对于使用上述软件进行分析是必要的。这个下游软件的工作方式,数据库顶部应该有一个标题,以标题行开头的#开头。

现在,我正在尝试使用pandas DataFrame,后来我打算写一个文本文件。这是一个示例代码片段,理论上显示了我正在尝试做的事情。它不起作用,因为#使其余部分成为评论。我还试图通过键入\#来逃避这个特殊字符,但后来抱怨,SyntaxError: unexpected character after line continuation character.有没有人对如何解决这个问题有任何想法,以便我可以从结果数据库的标题行开始具有#字符。

import pandas as pd
I_notid_lst = ["1","3"]
II_dir = ["/exampledir/moreexmaple/fake_01.bam.by_chr", "/exmapledir/moreexample/fake_02.bam.by_chr"]

db_df = pd.DataFrame(dict(#I_notid = I_notid_lst, II_dir = II_dir_lst))
print db_df.head()

1 个答案:

答案 0 :(得分:3)

#I_notid不是严格意义上的变量,而是dict的关键字参数,_是用于创建字典的构造函数。像名称一样的关键字参数通常只能包含字母数字字符和{key: value, ...},因此这种用法允许创建只包含字符串并遵循python命名约定的字典。

但是,与往常一样,您可以使用db_df = pd.DataFrame({'#I_notid': I_notid_lst, 'II_dir': II_dir_lst}) 字典文字构造来创建包含任何允许类型的键的字典,当然还可以使用具有非字母数字字符的字符串键:

{{1}}