Python .extend 不必要地拆分字符

2 投票
3 回答
3412 浏览
提问于 2025-04-19 06:03
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']

撰写回答