为了账号安全,请及时绑定邮箱和手机立即绑定

在这件事上尝试了两个小时,迭代、切片和连接字符串列表。代码看起来很完美,但它给出了一个奇怪的输出

在这件事上尝试了两个小时,迭代、切片和连接字符串列表。代码看起来很完美,但它给出了一个奇怪的输出

守着星空守着你 2023-12-09 15:49:49
#我的代码def sec_soc_nam(friends):  for x in friends:    return "".join(x[0])print(sec_soc_nam(["tina","andre",'suzie']))#输出:t#别人的解决方案def society_name(friends):    return ''.join(sorted(i[0] for i in friends))#输出所需的结果:“ast”注意:忽略排序这是迭代不起作用......仅输出第一项。我检查过,但没有丢失任何组件。
查看完整描述

4 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

如果您仍然想使用 join 关键字


def sec_soc_nam(friends):

  a = []

  for x in friends:

    a.append(x[0])

  return "".join(sorted(a))


print(sec_soc_nam(["tina","andre",'suzie']))


查看完整回答
反对 回复 2023-12-09
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

如果你这样编写代码

for x in friends:
    return "".join(x[0])

您将仅输出第一个字符串(“tina”)的第一个字符(x[0])

因为返回指令基本上告诉你的函数停止在那里并返回第一个迭代值

仅当您收集了所有起始字符后才应执行返回

"".join(sorted(i[0] for i in friends))

这正是另一个函数的作用。

  • 首先从所有字符串中提取第一个字符 (x[0])

  • 之后按字母顺序对你的字符进行排序(已排序)

  • 然后返回这些字符串的串联(返回“”.join)


查看完整回答
反对 回复 2023-12-09
?
开满天机

TA贡献1786条经验 获得超12个赞

def sec_soc_nam(friends):

  return " ".join(friends)


print(sec_soc_nam(["tina","andre",'suzie']))

您将返回每个循环的项目,而不是加入整个列表。


x[0] 返回该项的第一个字母


只需 print(" ".join(["tina","andre",'suzie'])) 就会为您加入列表


查看完整回答
反对 回复 2023-12-09
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

你的 for 循环中有一个返回赋值,所以你的程序在第一个循环后退出该函数,你可以尝试这个:


def sec_soc_nam(friends):

   a=''

   for x in friends:

     a=a+x[0]

   return a


查看完整回答
反对 回复 2023-12-09
  • 4 回答
  • 0 关注
  • 66 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信