list.extend()使列表成为char的char

时间:2017-01-28 04:38:06

标签: python python-3.x

def commandTaskList(self, schid, targetMode, toID, fromID, params=""):
    import psutil
    msg = []
    for p in psutil.process_iter():
        try:
            _p = str(p.as_dict(attrs=['name'])['name'])
            ts3lib.logMessage(_p, ts3defines.LogLevel.LogLevel_ERROR, "PyTSon", 0)
            if ".exe" in _p.lower(): msg.extend(_p)
        except psutil.Error: pass
    ts3lib.logMessage(str(msg), ts3defines.LogLevel.LogLevel_ERROR, "PyTSon", 0)
    msg = '\n'.join(sorted(msg))
    self.answerMessage(schid, targetMode, toID, fromID, msg)

这是我的代码,第一个logMessage()显示:

1/28/2017 04:32:30  PyTSon  Error   RemindersServer.exe 
1/28/2017 04:32:30  PyTSon  Error   AutoHotkey.exe  
1/28/2017 04:32:30  PyTSon  Error   raptr_ep64.exe  

第二个显示:

1/28/2017 04:32:30  PyTSon  Error   ['w', 'i', 'n', 'l', 'o', 'g', 'o', 'n', ...]   

2 个答案:

答案 0 :(得分:2)

以下是list.extend() docstring:

  

Docstring:L.extend(iterable) - 通过追加元素来扩展列表   来自可迭代的

     

输入:builtin_function_or_method

字符串被视为一系列字符,因此它是可迭代的。

a.extend(b)b的每个元素附加到a。由于在您的情况下b是一个字符串,因此b的每个字符都作为单独项附加到a。您需要的是a.append(b)a.extend([b])

答案 1 :(得分:1)

使用[<your_list>].append("your string")[<you_list>].extend(["your string as a list of one element"])

str是一种与list非常相似的序列数据类型。考虑这个例子: >>> [1, 2, 3].extend([4, 5, 6]) [1, 2, 3, 4, 5, 6]

同样的规则适用于单个字符作为元素的str