python - 我想转置字符串列表,但出现 TypeError

标签 python arrays

假设我有这个字符串列表

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/

相关文章:

java - 将 JSONObject 转换为 JSONArray

c++ - 寻找数组的最小值

php - 使用 PHP 在 .txt 文件中存储可自定义的测验问题和答案

python - 从字符串的开头和结尾删除非字母字符

python - python 对象的类似 Numpy 的打印

python - 突出显示数据框中的某些单词 Pandas HTML

ios - iOS swift 中所有对象的相同引用

javascript - 在 div 中输出,在数组中打印对象,但第一个答案是 "Undefined"。 - Javascript

python - 如何在Python中有效地将子字典转换为矩阵

Python - 如何从输入文本文件中仅编写以 $ 开头的 case 语句和实例?