假设我有这个字符串列表
li=['efh','opd','qst']
我想“转置”它们,使它们看起来像这样
li=['eoq','fps','hdt']
这是我提出的代码,但出现类型错误
previous=''
for i in range (len(li)):
for j in range (len(li[0])):
list2[j][i]=previous+list[i][j]
previous=list2[j][i]
previous=''
最佳答案
你有很多问题,具体错误是由于错字:
list2[j][i]=previous+list[i][j]
^^^^
list
是内置类型,不支持索引。
此外,list2
是未定义的,而 python 的 str
是不可变的,因此您不能分配给 str
索引。
此外,在迭代期间更改 li
会使以后的迭代产生错误的结果,因此建议创建一个新列表来保存结果。
您的代码的工作副本如下所示:
In []:
li=['efh','opd','qst']
new_li = []
for i in range(len(li[0])):
r = ''
for j in range(len(li)):
r += li[j][i]
new_li.append(r)
new_li
Out[]:
['eoq', 'fps', 'hdt']
注意:python 的 zip()
会为你做这件事:
In []:
li=['efh','opd','qst']
[''.join(s) for s in zip(*li)]
Out[]:
['eoq', 'fps', 'hdt']
关于python - 我想转置字符串列表,但出现 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44939583/