从列表中删除方括号和双引号

时间:2015-11-18 15:09:51

标签: python

我需要从python列表中删除方括号和双引号,以便进一步处理数据。

我的相同代码如下:

ips = ['1.2.3.5','1.2.3.4']
y = []

for ip in ips:
        x = "model.data.like('%"+ip+"%'),"
        y.append([x])
print y

所以我得到的最终结果如下:

["model.data.like('%1.2.3.5%'),"], ["model.data.like('%1.2.3.4%'),"]

现在我需要摆脱方括号和双引号。

我需要输出如下:

model.data.like('%1.2.3.5%'),model.data.like('%1.2.3.4%')

请注意IP地址是动态的,List可以包含两个以上的IP地址。

3 个答案:

答案 0 :(得分:3)

使用flattening listjoin功能 -

>>>t=[item for sublist in y for item in sublist]
>>print t
>>>["model.data.like('%1.2.3.5%'),", "model.data.like('%1.2.3.4%'),"]
>>>data =  ''.join(t)
>>>print data
>>>model.data.like('%1.2.3.5%'),model.data.like('%1.2.3.4%'),
>>>cleaned_data = data.rstrip(',')
>>>print cleaned_data
>>>model.data.like('%1.2.3.5%'),model.data.like('%1.2.3.4%')

答案 1 :(得分:1)

您可以通过访问list

元素来使用格式化字符串
In [58]: s = ''

In [59]: for i in ips:
    s = s + "model.data.like (%{}%),".format(i)

In [72]: s[:-1]
Out[72]: 'model.data.like (%1.2.3.5%),model.data.like (%1.2.3.4%)'

答案 2 :(得分:1)

那么,你想从列表中创建一个字符串吗?这很简单,您可以使用str.join来执行此操作:

ips = ['1.2.3.5','1.2.3.4']

# this is list comprehension, it does the same thing as your loop
y = ["model.data.like('%"+ip+"%')" for ip in ips]

print  ','.join(y)