为什么我不能在一个索引中获取字符串?

时间:2016-11-29 17:07:44

标签: python list python-3.x

当我尝试将字符串插入数组时,我得['.','p','y']而不是[.py]

from os import walk
Typofiles=[]
t=""
Ex=""
f = []
for (dirpath, dirnames, filenames) in walk('D:\Python_Scripts'):
    f.extend(filenames)
for i in range(1):
    t = f[i]
    indexO=t.rindex('.')
    LenF=len(t)
    Ex=(t[-(LenF-indexO):])
    if Ex in Typofiles:
        pass
    else:
        Typofiles.extend(Ex)

print (Typofiles)
print(Ex)

结果是:['.','p','y']如何获得['.py']

2 个答案:

答案 0 :(得分:1)

这是因为products = loaded_json['products'] for product in products.items(): print product[1].items()[2][1].items()[0][1].items()[0][1].items()[0][1]['path'] 是一个列表而您正在使用Typofiles方法。列表的.extend方法采用iterable,并将iterable的每个元素追加到自身。因此,它看起来像这样:

.extend

由于class List: def extend(self, iterable): for elem in iterable: self.append(elem) 是一个字符串,因此它是可迭代的,因此经历了上述过程。你想要做的是使用Ex方法,它只是将元素添加到列表中,无论元素是什么:

.append

答案 1 :(得分:1)

因为extend列表会导致可迭代参数中的每个元素分别附加:

  

L.extend(iterable) -> None - 通过附加可迭代的

元素来扩展列表
l = []    
l.extend(".py")
print(l)  # ['.', 'p', 'y']

您正在寻找获取该对象的.append,并将其简单地放在列表的末尾:

l = []    
l.append(".py")
print(l)  # ['.py']