Python .extend 不必要地拆分字符
colourImgArray = []
sizeList = soup.find('table', {'class' :'table-sku'})
for sizeTD in sizeList.findAll('td', {'class' :'name'}):
for sized in sizeTD.findAll("span"):
size = str(sized['title'])
colourImgArray.extend(size)
当我在循环里面打印大小的时候,我得到了一个连在一起的结果(2个加上中文字符),但是一旦我对它进行扩展,每个字符就被分开了。
我该怎么做才能让它不被分开,因为它本来就是连在一起的。
3 个回答
-1
如果你给extend传一个值,它会把这个值拆开。
比如说:
a = [其他值]
a.extend('1-00')
输出结果:
a = ['1','-','0','0',其他值]
试着给extend方法传一个列表:
a = [其他值]
a.extend(['1-00'])
输出结果:
a = ['1-00', 其他值]
colorImgArray = []
sized='sometitle'
colorImgArray.extend(sized)
colorImgArray
['s', 'o', 'm', 'e', 't', 'i', 't', 'l', 'e']
colorImgArray.extend([sized])
colorImgArray
['s', 'o', 'm', 'e', 't', 'i', 't', 'l', 'e', 'sometitle']
希望这能帮到你!
3
list.extend
方法可以接收任何类型的序列,而字符串就是一种字符的序列。所以你可以选择以下两种方式:
colourImgArray.extend([size])
或者
colourImgArray.append(size)
6
使用 append
,不要用 extend
!
>>> colourImgArray = []
>>> sized = 'sometitle'
>>> colourImgArray.extend(sized)
>>> colourImgArray
['s', 'o', 'm', 'e', 't', 'i', 't', 'l', 'e']
因为 extend
需要一个可迭代的对象作为参数,所以上面用字符串调用 extend
就相当于调用 colourImgArray.extend(list(sized))
- 字符串变成了可迭代的对象(每个字符都是列表的一个元素):
>>> colourImgArray = []
>>> colourImgArray.extend(list(sized))
>>> colourImgArray
['s', 'o', 'm', 'e', 't', 'i', 't', 'l', 'e']
不过你也可以通过创建一个只有一个元素的可迭代对象来使用 extend
,这样就能把整个字符串添加进去:
>>> colourImgArray.extend([sized])
>>> colourImgArray
['sometitle']
而 append
则正好做了它应该做的事情:
>>> colourImgArray = []
>>> colourImgArray.append(sized)
>>> colourImgArray
['sometitle']