Python 正在分析末尾包含连字符和额外连字符的列表

Python 正在分析末尾包含连字符和额外连字符的列表,python,Python,我有一个函数,它接受列表中的元素并在它们之间添加一个连字符,它工作得很好,问题是当我想将[“”,“”,“”]添加为一个列表时,它会输出----,但它应该输出-,因为列表中有3个元素。我想不出怎么解决这个问题。感谢您的帮助。提前谢谢 def printList(myList): str1 = ' '.join(map(str,myList)) for i in range(0, len(str1), 1): if (str1[i] == ' '):

我有一个函数,它接受列表中的元素并在它们之间添加一个连字符,它工作得很好,问题是当我想将
[“”,“”,“”]
添加为一个列表时,它会输出
----
,但它应该输出
-
,因为列表中有3个元素。我想不出怎么解决这个问题。感谢您的帮助。提前谢谢

def printList(myList):

    str1 = ' '.join(map(str,myList))
    
    for i in range(0, len(str1), 1):
        if (str1[i] == ' '):
            str1 = str1.replace(str1[i], '-')
    print(str1 + "-")
printList([" ", " ", " "])
您应该使用
join()
,因为这正是它的设计目的

'-'.join([" ", " ", " "])
#' - - '
如果您还想将
-
添加到末尾,只需将其添加到输出
字符串

'-'.join([" ", " ", " "]) + '- '
#' - - - '
对于基于整数的列表,
将元素映射到
str()

您应该使用
join()
,因为这正是它的设计目的

'-'.join([" ", " ", " "])
#' - - '
如果您还想将
-
添加到末尾,只需将其添加到输出
字符串

'-'.join([" ", " ", " "]) + '- '
#' - - - '
对于基于整数的列表,
将元素映射到
str()


为什么不只是'-'.join(myList)?另外,作为范围(0,len(str1),1)中i的旁白
1是默认值且不是必需的。为什么不只是'-'.join(myList)?另外,作为范围(0,len(str1),1)中i的旁白
1是默认值且不是必需的。但是对于int列表,即
printList([1,2,3,4])来说,它不起作用
@PacketLoss@anon10023108我已经在基于整数的列表的答案中添加了一个部分。但是对于整数列表,即
printList([1,2,3,4])
@PacketLoss@anon10023108我已经为基于整数的列表的答案添加了一个部分。