我需要从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地址。
答案 0 :(得分:3)
使用flattening list
和join
功能 -
>>>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)