以不希望的方式列出拆分

时间:2018-03-13 19:53:45

标签: python list built-in

  

我正在尝试从给定的python模块创建所选函数的列表。   这是我尝试过的输出示例脚本:

import os

def getfuncts(modyule):
    return (dir(modyule))

def pull_function(modyule):
    highgrade = []
    l = getfuncts(modyule)
    for func in l:

        if func[0].isalnum() and func[0].islower():
            highgrade += func

    print (l)
    print (highgrade)


pull_function(os)

l = ['EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', …]
highgrade = ['a', 'b', 'o', 'r', 't', 'a', 'c', 'c', 'e', 's', 's',…]

Q1。为什么高级输出列表会分成这样的单个字符?

Q2。如何获取函数名列表(即[abort,access,...])?

2 个答案:

答案 0 :(得分:0)

您将一次添加一个字符到以下行中的highgrade列表:

`highgrade += func`

非常确定你可以在一行中完成你想要的东西:

print([l for l in dir(os) if l[0].isalnum() and l[0].islower()])

给出:

['abc', 'abort', 'access', 'altsep', 'chdir', ...

答案 1 :(得分:0)

highgrade += func表示highgrade.extend(func),并期望func是可迭代的。这里,func是一个字符串,因此extend遍历其字符并将每个字符附加到highgrade列表。

你想要的是:

highgrade.append(func)

追加每个字符串。