在python中使用“\”从字符串转换为元组

时间:2013-01-06 12:39:41

标签: python command-line tuples

我将数据从命令行传输到python。我想从字符串(命令行)转换为元组(python)。但我对\ charactor有疑问。

在命令行中,我使用:

C:\>python music.py -a variable="?=="

在python中:

#convert variable to array 
variable_array = variable.split("==")
#convert to tuple
variable_tuple = tuple(variable_array)

我得到variable_tuple =(“?”,“”)

我需要的结果是variable_tuple =(“\?”,“”)

使用时

C:\>python music.py -a variable="\?=="

结果是variable_tuple =(“\\?”,“”)

如何从命令行传输数据到python中获取元组(“\?”,“”)?我需要反斜杠“?”

4 个答案:

答案 0 :(得分:3)

'\\?'是一个带有一个反斜杠字符和一个问号的字符串。 使用list是将字符串拆分为字符的便捷技巧。例如:

In [34]: list('\\?')
Out[34]: ['\\', '?']

显示'\\?'由2个字符组成,而不是3.如果您打印它:

In [35]: print('\\')
\

你看它只打印一个反斜杠字符。双反斜杠'\\'escape sequence


另请注意,当您打印元组时,您将获得其内容的repr

In [36]: print(tuple('\\?'))
('\\', '?')

'\?'与Python中的'\\?'完全相同。它们只是表示相同字符串的不同方式:

In [38]: list('\?')
Out[38]: ['\\', '?']

In [39]: list('\\?')
Out[39]: ['\\', '?']    

In [42]: '\?' is '\\?'
Out[44]: True

答案 1 :(得分:0)

你得到了你想要的。你看到的只是'\'的字符串表示,第一个'\'作为转义字符。

答案 2 :(得分:0)

("\\?","")表示“\”已转义,否则为“\?”将被解释为转义序列。

答案 3 :(得分:0)

?不需要反击。所以你得到的是正确和足够的。