当我尝试将字符串插入数组时,我得['.','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']
?
答案 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']