从列表中的字符串项中删除一个 substr
Remove a substr from string items in a list
list = [ 'u'adc', 'u'toto', 'u'tomato', ...]
我想要的是这样的列表:
list2 = [ 'adc', 'toto', 'tomato'... ]
你能告诉我如何在不使用正则表达式的情况下做到这一点吗?
我正在尝试:
for item in list:
list.extend(str(item).replace("u'",''))
list.remove(item)
但这最终给出了某种形式的东西 ['a', 'd', 'd', 'm'...]
在列表中我可能有任意数量的字符串。
您可以像这样将其编码为 "utf-8":
list_a=[ u'adc', u'toto', u'tomato']
list_b=list()
for i in list_a:
list_b.append(i.encode("utf-8"))
list_b
输出:
['adc', 'toto', 'tomato']
或者你可以使用str函数:
list_c = list()
for i in list_a:
list_c.append(str(i))
list_c
输出:
['adc', 'toto', 'tomato']
使用"u\'"
例如:
l = [ "u'adc", "u'toto", "u'tomato"]
for item in l:
print(item.replace("u\'", ""))
将输出:
adc
toto
tomato
我验证了你的问题,但它说语法问题,这意味着你在列表中声明字符串的方式不正确。在这种情况下,我已在第 2 行更正了这一点。
In [1]: list = [ 'u'adc', 'u'toto', 'u'tomato']
File "<ipython-input-1-2c6e581e868e>", line 1
list = [ 'u'adc', 'u'toto', 'u'tomato']
^
SyntaxError: invalid syntax
In [2]: list = [ u'adc', u'toto', u'tomato']
In [3]: list = [ str(item) for item in list ]
In [4]: list
Out[4]: ['adc', 'toto', 'tomato']
In [5]:
试试这个:
for item in list:
for x in range(0, len(item)):
if item[x] == 'u':
item[x] = ''
这将获取列表中的所有实例,并检查字符串 'u'。如果找到 'u',代码会将其替换为空字符串,实际上是将其删除。更多代码可以允许它检查字母组合('abc',等等)。
解法一
input_list = [ u'adc', u'toto', u'tomato']
output_list=map(lambda x:str(x),input_list )
print output_list
输出如下:
['adc', 'toto', 'tomato']
解法-2
input_list = [ u'adc', u'toto', u'tomato']
output_list=map(lambda x:x.encode("utf-8"),input_list )
print output_list
输出如下:
['adc', 'toto', 'tomato']
您的输入不过是一个json!您转储列表中的每个项目(这是一个 json!)以获得所需的输出!
由于您的输出带有引号 - 您需要去除(开头和结尾)它们!
import json
list = [ u'adc', u'toto', u'tomato']
print [json.dumps(i).strip('\"') for i in list]
输出:
['adc', 'toto', 'tomato']
希望对您有所帮助!
list = [ 'u'adc', 'u'toto', 'u'tomato', ...]
我想要的是这样的列表: list2 = [ 'adc', 'toto', 'tomato'... ]
你能告诉我如何在不使用正则表达式的情况下做到这一点吗? 我正在尝试:
for item in list:
list.extend(str(item).replace("u'",''))
list.remove(item)
但这最终给出了某种形式的东西 ['a', 'd', 'd', 'm'...]
在列表中我可能有任意数量的字符串。
您可以像这样将其编码为 "utf-8":
list_a=[ u'adc', u'toto', u'tomato']
list_b=list()
for i in list_a:
list_b.append(i.encode("utf-8"))
list_b
输出:
['adc', 'toto', 'tomato']
或者你可以使用str函数:
list_c = list()
for i in list_a:
list_c.append(str(i))
list_c
输出:
['adc', 'toto', 'tomato']
使用"u\'"
例如:
l = [ "u'adc", "u'toto", "u'tomato"]
for item in l:
print(item.replace("u\'", ""))
将输出:
adc
toto
tomato
我验证了你的问题,但它说语法问题,这意味着你在列表中声明字符串的方式不正确。在这种情况下,我已在第 2 行更正了这一点。
In [1]: list = [ 'u'adc', 'u'toto', 'u'tomato']
File "<ipython-input-1-2c6e581e868e>", line 1
list = [ 'u'adc', 'u'toto', 'u'tomato']
^
SyntaxError: invalid syntax
In [2]: list = [ u'adc', u'toto', u'tomato']
In [3]: list = [ str(item) for item in list ]
In [4]: list
Out[4]: ['adc', 'toto', 'tomato']
In [5]:
试试这个:
for item in list:
for x in range(0, len(item)):
if item[x] == 'u':
item[x] = ''
这将获取列表中的所有实例,并检查字符串 'u'。如果找到 'u',代码会将其替换为空字符串,实际上是将其删除。更多代码可以允许它检查字母组合('abc',等等)。
解法一
input_list = [ u'adc', u'toto', u'tomato']
output_list=map(lambda x:str(x),input_list )
print output_list
输出如下:
['adc', 'toto', 'tomato']
解法-2
input_list = [ u'adc', u'toto', u'tomato']
output_list=map(lambda x:x.encode("utf-8"),input_list )
print output_list
输出如下:
['adc', 'toto', 'tomato']
您的输入不过是一个json!您转储列表中的每个项目(这是一个 json!)以获得所需的输出!
由于您的输出带有引号 - 您需要去除(开头和结尾)它们!
import json
list = [ u'adc', u'toto', u'tomato']
print [json.dumps(i).strip('\"') for i in list]
输出:
['adc', 'toto', 'tomato']
希望对您有所帮助!