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

3

我需要从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地址是动态的,列表中可能包含两个以上的IP地址。

1
y是一个列表。打印y将会导致Python打印出该列表的可读字符串表示。方括号是列表的可视提示,而双引号则是字符串的可视提示。方括号和外部引号均不是数据的实际组成部分。 - tdelaney
谢谢,我明白你的意思。 - iamnewuser
3个回答

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%')

谢谢,但它的结果如下:model.data.like('%1.2.3.5%'),,model.data.like('%1.2.3.4%')。在这里,我不需要两个逗号,只需要一个逗号。如果能够去掉最后一个逗号,那就更好了。 - iamnewuser
我认为 OP 应该删除列表项中的逗号,并使用 '"'.join(t) - tdelaney

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%)'

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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接