【问题标题】:Python - passing string and specific lists, combined into functionPython - 传递字符串和特定列表,组合成函数
【发布时间】:2018-02-19 20:50:11
【问题描述】:

我想将字符串 (dirPath + dirName[x]) 传递给函数

我已经尝试了 3 次组合字符串和特定列表(仅 dirName[x])

即使我已经将它转换为另一种类型,python 似乎也只是拒绝它。

有人知道我如何将这个字符串传递给函数吗?

layer = 0
dirName = []
#dummy value layer = 4,  dirName = [/a,/b,/c,/d], dirBruteForce(layer,vault)

def dirBruteForce(layer,dirPath):
if layer > 0 :
    #call again to make layered dir
    for x in range(len(dirName)):
        dirBruteForce(layer - 1, dirPath + dirName[x]) ##this line
#call end of the dir
elif layer is 0 :
    for x in range(len(dirName)):
        try:
            os.makedirs(dirPath)
            print(dirPath)
        except Exception as e:
            pass
###

尝试1:

dirBruteForce(layer - 1, dirPath + dirName[x])
TypeError: can only concatenate list (not "str") to list

尝试2:

list = [dirPath,str(dirName[x])]
dir = ''.join(list)
dirBruteForce(layer - 1, dir)

错误2:

dir = ''.join(list)
TypeError: sequence item 0: expected str instance, list found

尝试3:

dir = ''.join([dirPath,dirName[x]])
dirBruteForce(layer - 1, dir)

错误3:

dir = '-'.join([dirPath,dirName[x]])
TypeError: sequence item 0: expected str instance, list found

【问题讨论】:

  • 你能澄清一下你的代码的目标是什么,或者那一行是什么?
  • 我的目标是将字符串.. dirPath(字符串)和dirName[x](列表中的字符串)传递给函数

标签: string python-3.x list function recursion


【解决方案1】:

看起来dirPath 是一个列表。在连接下一部分之前,您需要将其转换为字符串(例如,如果您只想连接所有元素,则使用 str.join()):

''.join(dirPath) + dirName[x]

【讨论】:

  • 我刚刚意识到 dirPath 是一个列表。我的代码中有一个错字。我应该将字符串分配给 dirPath。
猜你喜欢
  • 1970-01-01
  • 2012-01-07
  • 2020-01-16
  • 2017-04-21
  • 1970-01-01
  • 1970-01-01
  • 2021-05-31
  • 1970-01-01
  • 2020-09-30
相关资源
最近更新 更多