Python在列表中追加字符串,就像没有双引号

时间:2016-09-06 07:44:16

标签: python string list python-3.x

澄清:

这里的问题是我想将list1的内容放在List2中。正如评论中所建议的那样,我做错了。

我得到一个list1 value4 = [{' PARAMS':[' ProcessingDate = 2016-08-29',' ReRun = Y']}]

PARAMS的元素应以' -param'为后缀。 string,所以我创建了一个包含value4 [0] [' PARAMS']元素的新列表然后删除了这个列表的方括号,最后是字符串 FINALPARAMS '-param', 'ProcessingDate=2016-08-29', '-param', 'ReRun=Y'

然后我试图将这些值作为元素插入到另一个列表中。

myNewlist = ['C:\This\Path', 'value2', 'value3', FINALPARAMS, 'value5']

这给出了带有FINALPARAMS值的双引号的输出

['C:\\This\\Path', 'value2', 'value3', "'-param', 'ProcessingDate=2016-08-29', '-param', 'ReRun=Y'", value5]

我想摆脱这个新列表中的双引号

原始问题:

对于Python专家来说,这可能是一个简单的解决方案,但我厌倦了找到解决方案。我已经完成了大部分字符串操作,比如转换为字符串并尝试替换等等:

我的列表如下所示,我需要将value4的数据正确地放在`mylist中,而不使用双引号。

使用python 3.5

我得到了value4,如下所示

   value4 = [{'PARAMS': ['ProcessingDate=2016-08-29', 'ReRun=Y']}]

我将其转换为如下所示的列表,我需要-param作为PARAMS中每个元素的后缀

paramlist   = value4[0]['PARAMS']
newparamlist = []
for x in paramlist:
    newparamlist.append('-param')
    newparamlist.append(x)
FINALPARAMS = (str(newparamlist)[1:-1]) #Taking out the squareBrackets

print FINALPARAMS给出了期望的结果。即。

'-param', 'ProcessingDate=2016-08-29', '-param', 'ReRun=Y'

我使用下面列出的FINALPARAMS打印这样的值,我想摆脱双引号并将FINALPARAMS中的字符串视为myNewlist内的正常列表项1}}

myNewlist = ['C:\This\Path', 'value2', 'value3', FINALPARAMS, 'value5']

myNewlist结果如下观察DoubleQuote我想摆脱它,以便将值视为列表项

['C:\\This\\Path', 'value2', 'value3', "'-param', 'ProcessingDate=2016-08-29', '-param', 'ReRun=Y'", value5]

我失去了4个小时找到解决方案,这对我来说最初很简单。 我尝试将此newList转换为字符串并替换doubleQuotes,但我的subprocess.checkoutput查找正确的列表项

我尝试将列表转换为字符串并执行replace('"',''),结果发现它已经将4个反斜杠放到了Windows路径中,这是我列表中的第一个元素。并且我的命令给出了错误系统无法找到指定的路径

1 个答案:

答案 0 :(得分:5)

我相信你把一个列表放在列表中并且连接两个列表会让人困惑:

[1, 2, paramlist, 5]         # [1, 2, [3, 4], 5]

不同
[1, 2] + paramlist + [5]     # [1, 2, 3, 4, 5]

您尝试将列表转换为字符串以手动删除方括号,而不是使用正确的操作。毋庸置疑,这是错误的做法。

所以我认为你在寻找

value4 = [{'PARAMS': ['ProcessingDate=2016-08-29', 'ReRun=Y']}]

paramlist = value4[0]['PARAMS']
paramlist = [elem for x in paramlist for elem in ('-param', x)]
myNewlist = ['Value1', 'value2', 'value3'] + paramlist + ['value5']

print (myNewlist)

产生

['Value1', 'value2', 'value3', '-param', 'ProcessingDate=2016-08-29', '-param', 'ReRun=Y', 'value5']