我想转置一个字符串列表,但是我得到了TypeE

2024-06-28 18:47:58 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有这个字符串列表

li=['efh','opd','qst']

我想把它们“转换”成这样

^{pr2}$

这是我建议的代码,但是我得到了一个类型错误

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=''

Tags: 字符串代码in列表forlenrangeli
2条回答

您有许多问题,具体的错误是由于打字错误造成的:

list2[j][i]=previous+list[i][j]
                     ^^^^

list是内置类型,不支持索引。
另外,list2是未定义的,而python的str是不可变的,因此您不能分配给str索引。
另外,在迭代过程中更改li会使以后的迭代产生错误的结果,因此建议创建一个新的列表来保存结果。在

代码的工作副本如下所示:

^{pr2}$

注意:python的zip()可以为您做到这一点:

In []:
li=['efh','opd','qst']
[''.join(s) for s in zip(*li)]

Out[]:
['eoq', 'fps', 'hdt']

在这里你可以通过这个。在

li=['efh','opd','qst']
new_list = []
for i in range(len(li[0])):
    # maiking a list with its index element and convert it into string.
    new_string = ''.join([ls[i] for ls in li])
    # appending the new_string int new_list
    new_list.append(new_string)
print(new_list)

# output : ['eoq', 'fps', 'hdt']

相关问题 更多 >