Python剥离字符并组合列表对象



我有一个庞大的列表,看起来像这样:

['red.colorxa0', '2020-11-27xa0', 'green.colorxa0', '2020-11-27xa0', 'blue.colorxa0', '2020-11-27xa0']

我正试图弄清楚如何去掉xa0字符,并将每两个列表项组合在一起,结果会是:

[['red.color', '2020-11-27'], ['green.color', '2020-11-27'], ['blue.color', '2020-11-27']]

我试过这个,但失败得很惨:

for data in ugly:
data = data.strip("xa0")

至于将其他列表项组合成一个新列表,好吧,如果我在上面失败了,你可能会猜我在这方面崩溃了。

xa0实际上是不间断空间。使用List Comprehension:替换如下

In [3731]: ugly = ['red.colorxa0', '2020-11-27xa0', 'green.colorxa0', '2020-11-27xa0', 'blue.colorxa0', '2020-11-27xa0']
In [3736]: x = [i.replace(u'xa0', u'') for i in ugly]

现在,使用zip:组合列表的每2个元素

In [3741]: y = [list(i) for i in zip(x[0::2], x[1::2])]
In [3742]: y
Out[3742]: 
[['red.color', '2020-11-27'],
['green.color', '2020-11-27'],
['blue.color', '2020-11-27']]

我想你正在寻找这样的东西:


values = ['red.colorxa0', '2020-11-27xa0', 'green.colorxa0', '2020-11-27xa0', 'blue.colorxa0', '2020-11-27xa0']
index = 0
result = []
while index < len(values):
result.append([values[index].strip("xa0"), values[index + 1].strip("xa0")])
index += 2
print(result) # prints [['red.color', '2020-11-27'], ['green.color', '2020-11-27'], ['blue.color', '2020-11-27']]

基本上步骤是:

  1. 创建一个名为index的变量,该变量是对中第一项的索引
  2. 创建一个名为result的变量,该变量将作为结果列表
  3. 进入while循环,该循环遍历索引并附加每对索引并剥离它们
  4. 将索引变量增加2,因为您向结果列表中添加了2个变量

您的方法是正确的,但当您对列表中的项使用时,项只是一个临时变量,它不会对原始列表产生任何影响。你应该使用这样的索引。

l = ['red.colorxa0', '2020-11-27xa0', 'green.colorxa0', '2020-11-27xa0', 'blue.colorxa0', '2020-11-27xa0']
for i in range(len(l)):
l[i] = l[i].strip("xa0")
l2 = []
for i in range(0,len(l),2):
l2.append([l[i], l[i+1]])
print(l2) #[['red.color', '2020-11-27'], ['green.color', '2020-11-27'], ['blue.color', '2020-11-27']]

要删除'\xa0'部分,可以使用string.replace('xa0',"")方法。然后,您必须迭代步骤范围为2的列表,并将当前元素与下一个元素配对。你的代码可能看起来有点像这样:

list1 = ['red.colorxa0', '2020-11-27xa0', 'green.colorxa0', '2020-11-27xa0', 'blue.colorxa0', '2020-11-27xa0']
list2 = [x.replace("xa0", "") for x in list1]
new_list = list()
for x in range(0, len(list2), 2):
new_list.append([list2[x], list2[x+1]])
print(new_list)

最新更新