在列表中循环并将项目分配给新列表 - 有线行为

Din*_*Din 3 python for-loop list

我遍历列表列表,当我将项目附加到数组时,它会单独添加每个字母,而不是整个单词,除非我删除'[]'..为什么会发生,只是好奇?例:

只是好奇知道为什么会出现这种情况

def printTable(lists):
    for list in lists:
        s = []
        for item in list:
            s += item
            print(s)
        print()     


tableData = [['apples', 'oranges', 'cherries', 'banana'],
             ['Alice', 'Bob', 'Carol', 'David'],
             ['dogs', 'cats', 'moose', 'goose']]

printTable(tableData)
Run Code Online (Sandbox Code Playgroud)

而不是将每个项目添加到列表中,它添加每个字母(同时删除列表数据类型,它通过字母添加它们除外)只是好奇为什么会发生这种情况.

Meh*_*far 5

而不是s += item试试这个:

s.append(item)
Run Code Online (Sandbox Code Playgroud)

当你s += item说它相当于s = s + item,肯定s是list并且item是一个字符串,并且python字符串是可迭代的,所以这就是为什么它看起来像这样.

看下面的例子:

a = 'hi'
print(list(a))
['h', 'i']
Run Code Online (Sandbox Code Playgroud)

并且@roganjosh在评论中说:

请注意,使用list作为变量名称并不好,list内置于python中.