Python:我有正确的结果,但格式错误。用弦练习。知道怎么修吗?

2024-04-23 18:40:34 发布

您现在位置:Python中文网/ 问答频道 /正文

代码:

def group_list(group, users):
  members = str(users).split()
  return group + ":" + str(members)

print(group_list("Marketing", ["Mike", "Karen", "Jake", "Tasha"]))
print(group_list("Engineering", ["Kim", "Jay", "Tom"]))
print(group_list("Users", ""))

实际产量:

Marketing:["['Mike',", "'Karen',", "'Jake',", "'Tasha']"]
Engineering:["['Kim',", "'Jay',", "'Tom']"]
Users:[]

如何实现以下期望的输出

Marketing: Mike, Karen, Jake, Tasha
Engineering: Kim, Jay, Tom
Users:

Tags: groupusersmarketinglistmikeprintmemberstom
3条回答

在您编写的group_list函数中,users是一个列表,因此运行str(users)将标准列表格式(带括号)转换为字符串,然后用.split()空格分隔(这意味着将字符串拆分为列表)。您要做的是使用.join()方法将输入列表中的所有元素连接到一个字符串中

试试这个:

    def group_list(group, users):
        # Join each element of users, separated by ', '
        output = group + ': ' + ', '.join(users)
        return output

你可能想要这个。我将简要总结一下它的作用

def group_list(group, users):
  return group + ": " + ', '.join(users)

print(group_list("Marketing", ["Mike", "Karen", "Jake", "Tasha"])) 
print(group_list("Engineering", ["Kim", "Jay", "Tom"]))
print(group_list("Users", ""))

显示:

Marketing: Mike, Karen, Jake, Tasha
Engineering: Kim, Jay, Tom
Users: 

说明:

', '.join(users)

用于将列表users中的一系列字符串与间隔符连接起来,在本例中,逗号后跟空格

为什么你的代码不起作用

members = str(users).split()
    return group + ":" + str(members)

str(users)返回liststr表示形式,这意味着它实际返回的字符串类似于以下内容(请注意,该字符串在字符串中嵌入了文字引号,并嵌入了方括号:

"['Mike', 'Karen', 'Jake', 'Tasha']"

当您对此结果调用.split()时,.split()的默认行为是在空白处拆分,然后返回一个list。这意味着我们将返回如下内容:

["['Mike',",    "'Karen',",     "'Jake',",     "'Tasha']"]

我们看到这是一个list,被方括号包围,并且list包含一组短str对象:

"['Mike',"
"'Karen',"
"'Jake',"
"'Tasha']"

代码中发生的下一件事是,我们尝试通过使用str(members)获取成员的字符串表示形式list将成员list转换为str

以下是您可能正在寻找的内容:

def group_list(group, users):
  users_string = ", ".join(users)
  return "{}: {}".format(group, users_string)

print(group_list("Marketing", ["Mike", "Karen", "Jake", "Tasha"]))
print(group_list("Engineering", ["Kim", "Jay", "Tom"]))
print(group_list("Users", ""))

您可以使用join轻松地连接数组项。我更喜欢使用str.format来构建字符串,而不是使用“+”操作符来连接它们

str.format:https://docs.python.org/3.4/library/string.html#formatstrings
str.join:https://docs.python.org/3.4/library/stdtypes.html#str.join

相关问题 更多 >