#我的代码
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";
注意:忽略排序迭代不起作用。。。仅输出第一项。我检查了一下,但没有遗漏任何部件。
如果您仍然想使用联接关键字
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']))
如果您将代码编写为这样的
for x in friends:
return "".join(x[0])
您将仅输出的第一个字符串("tina"(的第一个字符(x[0](
因为返回指令基本上是对函数说停止并返回第一个迭代值
只有当你收集了所有的开始字符时,才应该执行返回
"".join(sorted(i[0] for i in friends))
这正是其他函数的作用。
- 首先从所有字符串中提取第一个字符(x[0](
- 然后按字母顺序对字符进行排序(排序(
- 然后返回这些字符串的串联(return".join"(
def sec_soc_nam(friends):
return " ".join(friends)
print(sec_soc_nam(["tina","andre",'suzie']))
您为每个循环返回项目,而不是加入整个列表。
x[0]返回项目的第一个字母
只需打印(".join(["tina","andre","uzie"](即可为您加入列表
如果在for循环中有一个返回赋值,那么程序在第一个循环后退出函数,可以尝试以下操作:
def sec_soc_nam(friends):
a=''
for x in friends:
a=a+x[0]
return a